Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.16 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. //0 : индекс первого нулевого элемента.
  5. int index_first_zero(int array[], int size)
  6. {
  7.     for(int i = 0; i < size; i++){
  8.         if(array[i] == 0)
  9.         return i;
  10.     }
  11.     return -1;
  12. }
  13. //---------------------------------------
  14. //1 : индекс последнего нулевого элемента.
  15. int index_last_zero(int array[], int size)
  16. {
  17.     for(int i = size-1; i >= 0; i--){
  18.         if(array[i] == 0)
  19.         return i;
  20.     }
  21.     return -1;
  22. }
  23. //---------------------------------------
  24. //2 : Найти сумму модулей элементов массива, расположенных от первого нулевого элемента и до последнего.
  25. int sum_between(int array[], int size)
  26. {
  27.     int N = 0;
  28.         for(int i = index_first_zero(array, size) ; i <= index_last_zero(array, size); i++)
  29.             N += abs(array[i]);
  30.     return N;
  31. }
  32. //---------------------------------------
  33. //3 : Найти сумму модулей элементов массива, расположенных до первого нулевого элемента и после последнего.
  34. int sum_before_and_after(int array[], int size)
  35. {
  36.     int N = 0;
  37.         for(int i = 0; i <= index_first_zero(array, size); i++)
  38.             N += abs(array[i]);
  39.         for(int i = size-1; i >= index_last_zero(array, size); i--)
  40.             N += abs(array[i]);
  41.     return N;
  42. }
  43. //----------------------------------------
  44. int main()
  45. {
  46.     int size = 100;
  47.     int array[size];
  48.     int num = -1;
  49.         scanf("%d", &num);
  50.         for(int i = 0; i < size; i++)
  51.             scanf("%d", &array[i]);
  52.         if(index_first_zero(array, size) == -1 || index_last_zero(array, size) == -1){
  53.             printf("Данные некорректны\n");
  54.             return 0;
  55.         }
  56.         switch(num){
  57.             case 0 :{
  58.                 printf("%d\n", index_first_zero(array, size));
  59.                 return 0;
  60.             }
  61.             case 1 :{
  62.                 printf("%d\n", index_last_zero(array, size));
  63.                 return 0;
  64.             }
  65.             case 2 :{
  66.                 printf("%d\n", sum_between(array, size));
  67.                 return 0;
  68.             }
  69.             case 3 :{
  70.                 printf("%d\n", sum_before_and_after(array, size));
  71.                 return 0;
  72.             }
  73.             default :
  74.                 printf("Данные некорректны\n");
  75.         }
  76.  
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement