Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 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. if(index_first_zero(array, size) == -1 || index_last_zero(array, size) == -1)
  28. return 0;
  29.  
  30. int N = 0;
  31. for(int i = index_first_zero(array, size) ; i <= index_last_zero(array, size); i++)
  32. N += abs(array[i]);
  33. return N;
  34. }
  35. //---------------------------------------
  36. //3 : Найти сумму модулей элементов массива, расположенных до первого нулевого элемента и после последнего.
  37. int sum_before_and_after(int array[], int size)
  38. {
  39. if(index_first_zero(array, size) == -1 || index_last_zero(array, size) == -1)
  40. return 0;
  41.  
  42. int N = 0;
  43. for(int i = 0; i <= index_first_zero(array, size); i++)
  44. N += abs(array[i]);
  45. for(int i = size-1; i >= index_last_zero(array, size); i--)
  46. N += abs(array[i]);
  47. return N;
  48. }
  49. //----------------------------------------
  50. int main()
  51. {
  52. int size = 10;
  53. int array[size];
  54. int num = -1;
  55. scanf("%d", &num);
  56. for(int i = 0; i < size; i++)
  57. scanf("%d", &array[i]);
  58.  
  59. switch(num){
  60. case 0 :{
  61. printf("%d\n", index_first_zero(array, size));
  62. return 0;
  63. }
  64. case 1 :{
  65. printf("%d\n", index_last_zero(array, size));
  66. return 0;
  67. }
  68. case 2 :{
  69. printf("%d\n", sum_between(array, size));
  70. return 0;
  71. }
  72. case 3 :{
  73. printf("%d\n", sum_before_and_after(array, size));
  74. return 0;
  75. }
  76. default :
  77. printf("Данные некорректны\n");
  78. }
  79.  
  80. return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement