Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #include <stdlib.h>
- #include <time.h>
- #define SIZE 100
- //вывести сумму всех элементов массива между первыми двумя нулевыми элементами
- //в идеале - из мейн вызвать ф-ию, которая сообщит в мейн индексы двух первых
- //нулевых элементов, и другая ф-ия, вызванная из мейн, подсчитает нужную сумму
- //тк не умею так делать, то решение некрасивое
- //переделать, как научусь разным способам передачи данных в ф-ию
- void pop_arr(int *,int);
- void pr_arr(int *, int);
- void sw_arr(int *,int);
- void sw_el(int *,int,int);
- int summarise(int *,int);
- int summ(int *,int,int);
- int main()
- {
- int arr[SIZE],sum;
- pop_arr(arr,SIZE);
- pr_arr(arr,SIZE);
- printf("\n\n\n\n");
- sum = summarise(arr,SIZE);
- printf("total summ between two 0 is %d\n",sum);
- //sw_arr(arr,SIZE);
- //pr_arr(arr,SIZE);
- return 0;
- }
- void pop_arr(int *a,int s)
- {
- int i;
- srand(time(NULL));
- for(i=0;i<s;i++)
- {
- a[i]= rand()%20-10;
- }
- }
- void pr_arr(int *a,int s)
- {
- int i;
- for(i=0;i<s;i++)
- {
- printf("%d\t",a[i]);
- }
- }
- void sw_arr(int *a,int s)
- {
- int i;
- for(i=0;i<s/2;i++)
- {
- sw_el(a,i,s-i-1);
- }
- }
- void sw_el(int *a,int ind1,int ind2)
- {
- int temp;
- temp = a[ind1];
- a[ind1] = a[ind2];
- a[ind2] = temp;
- }
- int summarise(int *a,int s)
- {
- int i,first_ind,second_ind;
- first_ind = second_ind = -1;
- for(i=0;i<s;i++)
- {
- if(a[i]==0)
- {
- if(first_ind<0)
- first_ind = i;
- else if(second_ind<0)
- second_ind = i;
- else
- i = s;
- }
- }//end of for
- return summ(a,first_ind,second_ind);
- }
- int summ(int *a,int k, int l)
- {
- int i,total = 0;
- for(i=k;i<l;i++)
- {
- printf("%d +\t",a[i]);
- //printf("Hello!\t");
- total+=a[i];
- }
- return total;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement