Advertisement
Underhing

ЯВУ.ЛАБ8.ВЕР.3

Feb 23rd, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 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 j = 0, i, count;
  32. for (i=1; i<N;i++) {
  33. if(a[i]==0) {
  34. count = i;
  35. while (count>j && a[count-1] !=0) {
  36. a[count] = a[count-1];
  37. a[count-1] = 0;
  38. count--;
  39. }
  40. j++;
  41. }
  42. }
  43. }
  44.  
  45. //ФУНКЦИЯ ПРОВЕРКИ ЧЕРЕДОВАНИЯ МАССИВА
  46. void cheredcheck(double a[], int N)
  47. {
  48. int aCHERED, i;
  49. for (i = 0; i < N - 1; i++) {
  50. if (a[i] + a[i + 1] != 1) {
  51. aCHERED = 0;
  52. break;
  53. }
  54. if (a[i] + a[i + 1] == 1)
  55. aCHERED = 1;
  56.  
  57. }
  58. if (aCHERED == 1)
  59. printf("(1) Массив чередуется\n");
  60. else
  61. printf("(1) Массив НЕ чередуется\n");
  62.  
  63. }
  64.  
  65. int main()
  66. {
  67.  
  68. int i, N, whattodo;
  69. printf("[№8] ПРОГРАММА ДЛЯ ОБРАБОТКИ МАССИВА: \n");
  70. printf("Введите размер массива: ");
  71. scanf("%d", &N);
  72. double* a; // указатель на массив
  73. a = (double*)malloc(N * sizeof(double)); // Выделение памяти
  74.  
  75. // Ввод элементов массива
  76. for (i = 0; i < N; i++) {
  77. printf("a[%d] = ", i);
  78. scanf("%lf", &a[i]);
  79. }
  80. printf("Команды:\n");
  81. printf("(1) Проверка чередования 0 и 1\n");
  82. printf("(2) Мин. элемент\n");
  83. printf("(3) Сумма полож. элементов\n");
  84. printf("(4) Сортировка массива (нули в начало)\n");
  85.  
  86. printf("Выберите необходимое действие: ");
  87. scanf("%d", &whattodo);
  88.  
  89.  
  90. switch(whattodo) {
  91. case 1:
  92. cheredcheck(a, N);
  93. break;
  94. case 2:
  95. printf("(2) Минимальный элемент: %lf \n", getminelement(a, N));
  96. break;
  97. case 3:
  98. printf("(3) Сумма полож. элементов массива= %lf\n", getpositivesumm(a, N));
  99. break;
  100. case 4:
  101. sortbyzero(a, N);
  102. printf("(4) Сортированный массив:\n");
  103. // Вывод элементов массива
  104. for (i = 0; i < N; i++)
  105. printf("a[%d] = %lf \n", i, a[i]);
  106. break;
  107. default :
  108. printf("[ОШИБКА] Такого действия нет!\n");
  109. }
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117. free(a); //освобождаем память
  118. return 0;
  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.  
  169. /*
  170. #include <stdio.h>
  171. #define arr_size(arr) (sizeof arr / sizeof arr[0]) //определение количетства элементов в массиве
  172.  
  173.  
  174.  
  175. int main(){
  176. int a[]={1,2,6,7,5};
  177.  
  178. printf("%lu\n", arr_size(a));
  179.  
  180.  
  181. }
  182.  
  183. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement