Advertisement
Underhing

ЯВУ.ЛАБ8.ВЕР 2,0

Feb 18th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <malloc.h>
  3.  
  4. //ФУНКЦИЯ ДЛЯ ОПРЕДЕЛНИЯ СУММЫ ПОЛОЖ ЧИСЕЛ
  5. double getpositivesumm(double a[], int N)
  6. {
  7. int i;
  8. double summ;
  9. for (i = 0; i < N; i++) {
  10.  
  11. if (a[i] >= 0) summ += a[i];
  12. }
  13.  
  14. return summ;
  15. }
  16.  
  17. //ФУНКЦИЯ ДЛЯ ПОЛУЧНИЯ МИН ЭЛЕМЕНТА МАССИВА
  18. double getminelement(double a[], int N)
  19. {
  20. int i;
  21. double min = a[0];
  22. for (i = 0; i < N; i++) {
  23. if (min > a[i]) min = a[i];
  24. }
  25.  
  26. return min;
  27. }
  28. //ФУНКЦИЯ СОРТИРОВКИ ПО НУЛЮ
  29. void sortbyzero(double a[], int N)
  30. {
  31. int temp, i, k;
  32. for ( i = 1; i < N; i++) {
  33. if (a[i] == 0) {
  34. temp = a[i];
  35. k = a[i-1];
  36. a[i-1] = temp;
  37. a[i+1] = k;
  38.  
  39. }
  40. }
  41. }
  42.  
  43. //ФУНКЦИЯ ПРОВЕРКИ ЧЕРЕДОВАНИЯ МАССИВА
  44. void cheredcheck(double a[], int N)
  45. {
  46. int aCHERED, i;
  47. for (i = 0; i < N - 1; i++) {
  48. if (a[i] + a[i + 1] != 1) {
  49. aCHERED = 0;
  50. break;
  51. }
  52. if (a[i] + a[i + 1] == 1)
  53. aCHERED = 1;
  54.  
  55. }
  56. if (aCHERED == 1)
  57. printf("(1) Массив чередуется\n");
  58. else
  59. printf("(1) Массив НЕ чередуется\n");
  60.  
  61. }
  62.  
  63. int main()
  64. {
  65.  
  66. int i, N, whattodo;
  67. printf("[№8] ПРОГРАММА ДЛЯ ОБРАБОТКИ МАССИВА: \n");
  68. printf("Введите размер массива: ");
  69. scanf("%d", &N);
  70. double* a; // указатель на массив
  71. a = (double*)malloc(N * sizeof(double)); // Выделение памяти
  72.  
  73. // Ввод элементов массива
  74. for (i = 0; i < N; i++) {
  75. printf("a[%d] = ", i);
  76. scanf("%lf", &a[i]);
  77. }
  78. printf("Команды:\n");
  79. printf("(1) Проверка чередования 0 и 1\n");
  80. printf("(2) Мин. элемент\n");
  81. printf("(3) Сумма полож. элементов\n");
  82. printf("(4) Сортировка массива (нули в начало)\n");
  83.  
  84. printf("Выберите необходимое действие: ");
  85. scanf("%d", &whattodo);
  86.  
  87.  
  88. switch(whattodo) {
  89. case 1:
  90. cheredcheck(a, N);
  91. break;
  92. case 2:
  93. printf("(2) Минимальный элемент: %lf \n", getminelement(a, N));
  94. break;
  95. case 3:
  96. printf("(3) Сумма полож. элементов массива= %lf\n", getpositivesumm(a, N));
  97. break;
  98. case 4:
  99. sortbyzero(a, N);
  100. printf("(4) Сортированный массив:\n");
  101. // Вывод элементов массива
  102. for (i = 0; i < N; i++)
  103. printf("a[%d] = %lf \n", i, a[i]);
  104. break;
  105. default :
  106. printf("[ОШИБКА] Такого действия нет!\n");
  107. }
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115. free(a); //освобождаем память
  116. return 0;
  117. }
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167. /*
  168. #include <stdio.h>
  169. #define arr_size(arr) (sizeof arr / sizeof arr[0]) //определение количетства элементов в массиве
  170.  
  171.  
  172.  
  173. int main(){
  174. int a[]={1,2,6,7,5};
  175.  
  176. printf("%lu\n", arr_size(a));
  177.  
  178.  
  179. }
  180.  
  181. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement