Advertisement
Lisaveta777

Return 2 elements

Oct 30th, 2018
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.21 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. #define SIZE 100
  7.  
  8. //вывести сумму всех элементов массива между первыми двумя нулевыми элементами
  9. //в идеале - из мейн вызвать ф-ию, которая сообщит в мейн индексы двух первых
  10. //нулевых элементов, и другая ф-ия, вызванная из мейн, подсчитает нужную сумму
  11. //тк не умею так делать, то решение некрасивое
  12. //переделать, как научусь разным способам передачи данных в ф-ию
  13.  
  14. void pop_arr(int *,int);
  15. void pr_arr(int *, int);
  16. void sw_arr(int *,int);
  17. void sw_el(int *,int,int);
  18. int  summarise(int *,int);
  19. int  summ(int *,int,int);
  20.  
  21. int main()
  22. {
  23.     int arr[SIZE],sum;
  24.     pop_arr(arr,SIZE);
  25.     pr_arr(arr,SIZE);
  26.     printf("\n\n\n\n");
  27.     sum = summarise(arr,SIZE);
  28.     printf("total summ between two 0 is %d\n",sum);
  29.     //sw_arr(arr,SIZE);
  30.     //pr_arr(arr,SIZE);
  31.    return 0;
  32. }
  33.  
  34. void pop_arr(int *a,int s)
  35. {
  36.     int i;
  37.     srand(time(NULL));
  38.     for(i=0;i<s;i++)
  39.     {
  40.         a[i]= rand()%20-10;
  41.     }
  42. }
  43. void pr_arr(int *a,int s)
  44. {
  45.     int i;
  46.     for(i=0;i<s;i++)
  47.     {
  48.         printf("%d\t",a[i]);
  49.     }
  50. }
  51. void sw_arr(int *a,int s)
  52. {
  53.     int i;
  54.     for(i=0;i<s/2;i++)
  55.     {
  56.  
  57.         sw_el(a,i,s-i-1);
  58.  
  59.     }
  60.  
  61. }
  62. void sw_el(int *a,int ind1,int ind2)
  63. {
  64.     int temp;
  65.     temp = a[ind1];
  66.     a[ind1] = a[ind2];
  67.     a[ind2] = temp;
  68.  
  69. }
  70. int summarise(int *a,int s)
  71. {
  72.    
  73.  
  74.     int i,first_ind,second_ind;
  75.     first_ind = second_ind = -1;
  76.     for(i=0;i<s;i++)
  77.     {
  78.         if(a[i]==0)
  79.         {
  80.             if(first_ind<0)
  81.                 first_ind = i;
  82.             else if(second_ind<0)
  83.                 second_ind = i;
  84.             else
  85.                 i = s;
  86.         }
  87.     }//end of for
  88.     return summ(a,first_ind,second_ind);
  89. }
  90. int summ(int *a,int k, int l)
  91. {
  92.     int i,total = 0;
  93.     for(i=k;i<l;i++)
  94.     {
  95.         printf("%d  +\t",a[i]);
  96.         //printf("Hello!\t");
  97.         total+=a[i];
  98.     }
  99.     return total;
  100.  
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement