Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.77 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #define _USE_MATH_DEFINES
  3. #include <math.h>
  4. #include <stdio.h>
  5. #include <time.h>
  6. #include <stdlib.h>
  7. #include <locale.h>
  8. #include <string.h>
  9. #include <ctype.h>
  10.  
  11. void rus() {
  12.     setlocale(LC_ALL, "Russian");
  13. }
  14.  
  15. int minus(int a, int b) {
  16.     int c = a - b;
  17.     return c;
  18. }
  19.  
  20. void print(int* a, int n) {
  21.     for (int i = 0; i < n; i++)
  22.     {
  23.         printf("%d\t", a[i]);
  24.     }
  25. }
  26.  
  27. void print_f(float* a, int n) {
  28.     for (int i = 0; i < n; i++)
  29.     {
  30.         printf("%f\t", a[i]);
  31.     }
  32. }
  33.  
  34. void random(int *a, int N, int d, int plus) {
  35.     for (int i = 0; i < N; i++) {
  36.         a[i] = rand()%d + plus;
  37.     }
  38. }
  39.  
  40. void random_f(float* a, int N, int d, int plus) {
  41.     for (int i = 0; i < N; i++) {
  42.         a[i] = rand() % d + plus;
  43.     }
  44. }
  45.  
  46. void swap(int *a, int *b) {
  47.     int sw = *a;
  48.     *a = *b;
  49.     *b = sw;
  50. }
  51.  
  52. void swap_f(float* a, float* b) {
  53.     float sw = *a;
  54.     *a = *b;
  55.     *b = sw;
  56. }
  57.  
  58. void sort_vozrastanie(int* a, int start, int N) {
  59.     for (int i = start; i < N; i++) {
  60.         for (int j = start; j < N; j++) {
  61.             if (a[j] > a[j + 1]) {
  62.                 int* pa = &a[j], * pb = &a[j + 1];
  63.                 swap(pa, pb);
  64.             }
  65.         }
  66.     }
  67. }
  68.  
  69. void sort_ybivanie(int* a, int start, int N) {
  70.     for (int i = start; i < N; i++) {
  71.         for (int j = start; j < N; j++) {
  72.             if (a[j] < a[j + 1]) {
  73.                 int* pa = &a[j], * pb = &a[j + 1];
  74.                 swap(pa, pb);
  75.             }
  76.         }
  77.     }
  78. }
  79.  
  80. float cent_arifmetical(int* a, int N) {
  81.     int arif = 0;
  82.     for (int i = 0; i < N; i++)
  83.     {
  84.         arif += a[i];
  85.     }
  86.     arif = arif / N;
  87.     return arif;
  88. }
  89.  
  90. float max_in_array(float* a, int N) {
  91.     float max = -1111111111;
  92.     for (int i = 0; i < N; i++)
  93.     {
  94.         if (a[i] > max) {
  95.             max = a[i];
  96.         }
  97.     }
  98.     return max;
  99. }
  100.  
  101. int max_index_in_array(float* a, int N) {
  102.     float max = 0, j = 0;
  103.     for (int i = 0; i < N; i++)
  104.     {
  105.         if (a[i] > max) {
  106.             max = a[i];
  107.             j = i;
  108.         }
  109.     }
  110.     return j;
  111. }
  112.  
  113. float count_of_elements_who_more_then_q0_float(int* a, int N, int q0) {
  114.     float q = 0;
  115.     for (int i = 0; i < N; i++)
  116.     {
  117.         if (a[i] > q0) {
  118.             q++;
  119.         }
  120.     }
  121.     return q;
  122. }
  123.  
  124. int sum_chet(int *a, int N) {
  125.     int sum = 0;
  126.     for (int i = 0; i < N; i++)
  127.     {
  128.         if (i % 2 == 0) {
  129.             sum += a[i];
  130.         }
  131.     }
  132.     return sum;
  133. }
  134.  
  135. int sum_nechet(int *a, int N) {
  136.     int sum = 0;
  137.     for (int i = 0; i < N; i++)
  138.     {
  139.         if (i % 2 == 1) {
  140.             sum += a[i];
  141.         }
  142.     }
  143.     return sum;
  144. }
  145.  
  146. void sign(int* a, int* b, int N) {
  147.     int j = 0;
  148.     for (int i = 0; i < N; i++) {
  149.         if (a[i] < 0) {
  150.             b[j++] = a[i];
  151.         }
  152.     }
  153.  
  154.     for (int i = 0; i < N; i++) {
  155.         if (a[i] == 0) {
  156.             b[j++] = a[i];
  157.         }
  158.     }
  159.  
  160.     for (int i = 0; i < N; i++) {
  161.         if (a[i] > 0) {
  162.             b[j++] = a[i];
  163.         }
  164.     }
  165. }
  166.  
  167. void for_task3(int* a, int* b, int N) {
  168.     for (int i = 0; i < N; i++) {
  169.         int c = a[i] % 10, d = a[i] / 10;
  170.         b[i] = minus(c, d);
  171.     }
  172. }
  173.  
  174. int weniger(int* a, int i) {
  175.     int c = 0;
  176.     if (a[i] < a[i+1]) {
  177.         c = 1;
  178.     }
  179.     return c;
  180. }
  181.  
  182. int sortirovka(int* a, int *b, int *c, int N, int M) {
  183.     for (int i = 0; i < N; i++){
  184.         for (int j = 0; j < M; j++){
  185.             if (weniger(a, i)) {
  186.  
  187.             }
  188.             else {
  189.                 *c++;
  190.             }
  191.         }
  192.     }
  193. }
  194.  
  195. #define task1
  196.  
  197.  
  198. #ifdef task1
  199. int main() {
  200. #define N 100
  201.     rus();
  202.     setlocale(LC_ALL, "Russian");
  203.     int a[N] = { 0 }, b[N][N] = { 0 };
  204.     puts("Сколько цифр будет в вашем массиве?");
  205.     int n = 0, j = 0, k = 0, maxk = 0, *c = &k;
  206.     scanf("%d", &n);
  207.     puts("Вводите:");
  208.     for (int i = 0; i < n; i++) {
  209.         scanf("%d", &a[i]);
  210.     }
  211.     for (int i = 0; i < n-1; i++) {
  212.         if (a[i] > a[i + 1]) {
  213.             b[j][k++] = i+1;
  214.             if (k > maxk) {
  215.                 maxk = k;
  216.             }
  217.         }
  218.         else {
  219.             b[j++][k] = i+1;
  220.             k = 0;
  221.         }
  222.     }
  223.     b[j][k++] = a[n-1];
  224.     if (k> maxk){
  225.         maxk = k;
  226.     }
  227.     for (int i = 0; i <= j; i++) {
  228.         printf("%d -я увывающая строка индексов:\t", i);
  229.         for (int K = 0; K <= maxk; K++){
  230.             printf("%d\t", b[i][K]);
  231.         }
  232.         puts("\n");
  233.     }
  234.  
  235.     return 0;
  236. }
  237. #endif // task1 (-)
  238.  
  239. #ifdef task3
  240.  
  241. int main() {
  242.     rus();
  243.     srand(time(NULL));
  244. #define N 10
  245.     int a[N] = { 0 };
  246.     int b[N] = { 0 };
  247.     random(a, N, 20, -10);
  248.     print(a, N);
  249.     puts("\n");
  250.     sign(a, b, N);
  251.  
  252.     print(b, N);
  253. }
  254.  
  255. #endif //task3
  256.  
  257. #ifdef task4
  258. int main() {
  259.     srand(time(NULL));
  260. #define N 10
  261.     int a[N] = { 0 }, b[N] = { 0 };
  262.     random(a, N, 99, 1);
  263.     print(a, N);
  264.     puts("\n");
  265.     for_task3(a, b, N);
  266.     print(b, N);
  267.     return 0;
  268. }
  269. #endif // task4
  270.  
  271. #ifdef task5
  272. int main() {
  273. #define N 15
  274. #define D 15
  275.     rus();
  276.     srand(time(NULL));
  277.     int a[N] = { 0 }, b[N] = { 0 };
  278.     random(a, N, 2*D, (-D));
  279.     print(a, N);
  280.     puts("\n");
  281.     int j = 0;
  282.     for (int i = 0; i < N; i++) {
  283.         if (a[i] < 0) {
  284.             b[j++] = a[i];
  285.         }
  286.     }
  287.     int j_minus = j;
  288.     for (int i = 0; i < N; i++) {
  289.         if (a[i] == 0) {
  290.             b[j++] = a[i];
  291.         }
  292.     }
  293.     int j_zero = j - j_minus;
  294.     for (int i = 0; i < N; i++) {
  295.         if (a[i] > 0) {
  296.             b[j++] = a[i];
  297.         }
  298.     }
  299.     int j_plus = j - j_minus - j_zero;
  300.  
  301.     /*sort_vozrastanie(b, 0, j_minus);
  302.     sort_ybivanie(b, j_zero + 1, j_plus);
  303.     */
  304.     int sw = 0;
  305.     for (int i = 0; i < j_minus; i++) {
  306.         for (int j1 = 0; j1 < j_minus-1; j1++) {
  307.             if (b[j1] > b[j1 + 1]) {
  308.                 //swap(a[j1], a[j1 + 1]);
  309.                 sw = b[j1];
  310.                 b[j1] = b[j1 + 1];
  311.                 b[j1 + 1] = sw;
  312.             }
  313.         }
  314.     }
  315.  
  316.     for (int i = N-j_plus; i < N; i++) {
  317.         for (int j1 = N-j_minus+1; j1 < N-1; j1++) {
  318.             if (b[j1] < b[j1 + 1]) {
  319.                 //swap(a[j1], a[j1 + 1]);
  320.                 sw = b[j1];
  321.                 b[j1] = b[j1 + 1];
  322.                 b[j1 + 1] = sw;
  323.             }
  324.         }
  325.     }
  326.  
  327.     print(b, N);
  328.     return 0;
  329. }
  330. #endif // task5
  331.  
  332. #ifdef task6
  333. #define N 12
  334. int main() {
  335.     rus();
  336.     srand(time(NULL));
  337.     int a[N] = { 0 }, b[N] = { 0 };
  338.     random(a, N, 15, 1);
  339.     random(b, N, 15, 1);
  340.     print(a, N);
  341.     puts("\n");
  342.     print(b, N);
  343.     puts("\n\n");
  344.     for (int i = 0; i < N; i++)
  345.     {
  346.         for (int j = 0; j < N; j++)
  347.         {
  348.             if (a[i] == b[j]) {
  349.                 a[i] = 0;
  350.             }
  351.         }
  352.     }
  353.  
  354.     print(a, N);
  355.     return 0;
  356. }
  357. #endif // task6
  358.  
  359. #ifdef task8
  360. #define N 10
  361. int main() {
  362.     int a[N] = { 0 };
  363.     random(a, N, 10, 1);
  364.     print(a, N);
  365.     puts("\n");
  366.     int sum = sum_chet(a, N), sum2 =sum_nechet(a, N);  
  367.  
  368.     printf("%d", sum2 % sum);
  369.  
  370.     return 0;
  371. }
  372. #endif // task8
  373.  
  374. #ifdef task9
  375. int main() {
  376. #define N 10
  377.     int a[N] = { 0 };
  378.     float s = 0;
  379.     srand(time(NULL));
  380.     random(a, N, 10, 1);
  381.     print(a, N);
  382.     int arif = cent_arifmetical(a, N);
  383.    
  384.     float q = count_of_elements_who_more_then_q0_float(a, N, arif);
  385.     q = q * 100 / N;
  386.     printf("%.2f", q);
  387.     return 0;
  388. }
  389. #endif
  390.  
  391. #ifdef task10
  392. int main() {
  393. #define N 10
  394.     srand(time(NULL));
  395.     float a[N] = { 0 }, b[N] = { 0 };
  396.     random_f(a, N, 10, 1);
  397.     random_f(b, N, 10, 1);
  398.     print_f(a, N);
  399.     puts("\n");
  400.     print_f(b, N);
  401.     puts("\n\n");
  402.  
  403.     float max_a = max_in_array(a, N);
  404.     int i_a = max_index_in_array(a, N);
  405.     float max_b = max_in_array(b, N);
  406.     int i_b = max_index_in_array(b, N);
  407.     float* pa = &a[i_a], * pb = &b[i_b];
  408.     swap_f(pa, pb);
  409.  
  410.     printf("max elements: %f\t%f", *pa, *pb);
  411.     puts("\n");
  412.  
  413.     print_f(a, N);
  414.     puts("\n");
  415.     print_f(b, N);
  416.  
  417.     return 0;
  418. }
  419.  
  420. #endif // task10
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement