Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.47 KB | None | 0 0
  1. #ifdef task3
  2.  
  3. void rus() {
  4.     setlocale(LC_ALL, "Russian");
  5. }
  6.  
  7. int minus(int a, int b) {
  8.     int c = a - b;
  9.     return c;
  10. }
  11.  
  12. void print(int* a, int n) {
  13.     for (int i = 0; i < n; i++)
  14.     {
  15.         printf("%d\t", a[i]);
  16.     }
  17. }
  18.  
  19. void print_f(float* a, int n) {
  20.     for (int i = 0; i < n; i++)
  21.     {
  22.         printf("%f\t", a[i]);
  23.     }
  24. }
  25.  
  26. void random(int *a, int N, int d, int plus) {
  27.     for (int i = 0; i < N; i++) {
  28.         a[i] = rand()%d + plus;
  29.     }
  30. }
  31.  
  32. void random_f(float* a, int N, int d, int plus) {
  33.     for (int i = 0; i < N; i++) {
  34.         a[i] = rand() % d + plus;
  35.     }
  36. }
  37.  
  38. void swap(int *a, int *b) {
  39.     int sw = *a;
  40.     *a = *b;
  41.     *b = sw;
  42. }
  43.  
  44. void swap_f(float* a, float* b) {
  45.     float sw = *a;
  46.     *a = *b;
  47.     *b = sw;
  48. }
  49.  
  50. void sort_vozrastanie(int* a, int start, int N) {
  51.     for (int i = start; i < N; i++) {
  52.         for (int j = start; j < N; j++) {
  53.             if (a[j] > a[j + 1]) {
  54.                 int* pa = &a[j], * pb = &a[j + 1];
  55.                 swap(pa, pb);
  56.             }
  57.         }
  58.     }
  59. }
  60.  
  61. void sort_ybivanie(int* a, int start, int N) {
  62.     for (int i = start; i < N; i++) {
  63.         for (int j = start; j < N; j++) {
  64.             if (a[j] < a[j + 1]) {
  65.                 int* pa = &a[j], * pb = &a[j + 1];
  66.                 swap(pa, pb);
  67.             }
  68.         }
  69.     }
  70. }
  71.  
  72. float cent_arifmetical(int* a, int N) {
  73.     int arif = 0;
  74.     for (int i = 0; i < N; i++)
  75.     {
  76.         arif += a[i];
  77.     }
  78.     arif = arif / N;
  79.     return arif;
  80. }
  81.  
  82. float max_in_array(float* a, int N) {
  83.     float max = -1111111111;
  84.     for (int i = 0; i < N; i++)
  85.     {
  86.         if (a[i] > max) {
  87.             max = a[i];
  88.         }
  89.     }
  90.     return max;
  91. }
  92.  
  93. int max_index_in_array(float* a, int N) {
  94.     float max = 0, j = 0;
  95.     for (int i = 0; i < N; i++)
  96.     {
  97.         if (a[i] > max) {
  98.             max = a[i];
  99.             j = i;
  100.         }
  101.     }
  102.     return j;
  103. }
  104.  
  105. float count_of_elements_who_more_then_q0_float(int* a, int N, int q0) {
  106.     float q = 0;
  107.     for (int i = 0; i < N; i++)
  108.     {
  109.         if (a[i] > q0) {
  110.             q++;
  111.         }
  112.     }
  113.     return q;
  114. }
  115.  
  116. int sum_chet(int *a, int N) {
  117.     int sum = 0;
  118.     for (int i = 0; i < N; i++)
  119.     {
  120.         if (i % 2 == 0) {
  121.             sum += a[i];
  122.         }
  123.     }
  124.     return sum;
  125. }
  126.  
  127. int sum_nechet(int *a, int N) {
  128.     int sum = 0;
  129.     for (int i = 0; i < N; i++)
  130.     {
  131.         if (i % 2 == 1) {
  132.             sum += a[i];
  133.         }
  134.     }
  135.     return sum;
  136. }
  137.  
  138. void sign(int* a, int* b, int N) {
  139.     int j = 0;
  140.     for (int i = 0; i < N; i++) {
  141.         if (a[i] < 0) {
  142.             b[j++] = a[i];
  143.         }
  144.     }
  145.  
  146.     for (int i = 0; i < N; i++) {
  147.         if (a[i] == 0) {
  148.             b[j++] = a[i];
  149.         }
  150.     }
  151.  
  152.     for (int i = 0; i < N; i++) {
  153.         if (a[i] > 0) {
  154.             b[j++] = a[i];
  155.         }
  156.     }
  157. }
  158.  
  159. void for_task3(int* a, int* b, int N) {
  160.     for (int i = 0; i < N; i++) {
  161.         int c = a[i] % 10, d = a[i] / 10;
  162.         b[i] = minus(c, d);
  163.     }
  164. }
  165.  
  166. int main() {
  167.     rus();
  168.     srand(time(NULL));
  169. #define N 10
  170.     int a[N] = { 0 };
  171.     int b[N] = { 0 };
  172.     random(a, N, 20, -10);
  173.     print(a, N);
  174.     puts("\n");
  175.     sign(a, b, N);
  176.  
  177.     print(b, N);
  178. }
  179.  
  180. #endif //task3
  181.  
  182. #ifdef task4
  183. int main() {
  184.     srand(time(NULL));
  185. #define N 10
  186.     int a[N] = { 0 }, b[N] = { 0 };
  187.     random(a, N, 99, 1);
  188.     print(a, N);
  189.     puts("\n");
  190.     for_task3(a, b, N);
  191.     print(b, N);
  192.     return 0;
  193. }
  194. #endif // task4
  195.  
  196. #ifdef task5
  197. int main() {
  198. #define N 15
  199. #define D 15
  200.     rus();
  201.     srand(time(NULL));
  202.     int a[N] = { 0 }, b[N] = { 0 };
  203.     random(a, N, 2*D, (-D));
  204.     print(a, N);
  205.     puts("\n");
  206.     int j = 0;
  207.     for (int i = 0; i < N; i++) {
  208.         if (a[i] < 0) {
  209.             b[j++] = a[i];
  210.         }
  211.     }
  212.     int j_minus = j;
  213.     for (int i = 0; i < N; i++) {
  214.         if (a[i] == 0) {
  215.             b[j++] = a[i];
  216.         }
  217.     }
  218.     int j_zero = j - j_minus;
  219.     for (int i = 0; i < N; i++) {
  220.         if (a[i] > 0) {
  221.             b[j++] = a[i];
  222.         }
  223.     }
  224.     int j_plus = j - j_minus - j_zero;
  225.  
  226.     /*sort_vozrastanie(b, 0, j_minus);
  227.     sort_ybivanie(b, j_zero + 1, j_plus);
  228.     */
  229.     int sw = 0;
  230.     for (int i = 0; i < j_minus; i++) {
  231.         for (int j1 = 0; j1 < j_minus-1; j1++) {
  232.             if (b[j1] > b[j1 + 1]) {
  233.                 //swap(a[j1], a[j1 + 1]);
  234.                 sw = b[j1];
  235.                 b[j1] = b[j1 + 1];
  236.                 b[j1 + 1] = sw;
  237.             }
  238.         }
  239.     }
  240.  
  241.     for (int i = N-j_plus; i < N; i++) {
  242.         for (int j1 = N-j_minus+1; j1 < N-1; j1++) {
  243.             if (b[j1] < b[j1 + 1]) {
  244.                 //swap(a[j1], a[j1 + 1]);
  245.                 sw = b[j1];
  246.                 b[j1] = b[j1 + 1];
  247.                 b[j1 + 1] = sw;
  248.             }
  249.         }
  250.     }
  251.  
  252.     print(b, N);
  253.     return 0;
  254. }
  255. #endif // task5
  256.  
  257. #ifdef task6
  258. #define N 12
  259. int main() {
  260.     rus();
  261.     srand(time(NULL));
  262.     int a[N] = { 0 }, b[N] = { 0 };
  263.     random(a, N, 15, 1);
  264.     random(b, N, 15, 1);
  265.     print(a, N);
  266.     puts("\n");
  267.     print(b, N);
  268.     puts("\n\n");
  269.     for (int i = 0; i < N; i++)
  270.     {
  271.         for (int j = 0; j < N; j++)
  272.         {
  273.             if (a[i] == b[j]) {
  274.                 a[i] = 0;
  275.             }
  276.         }
  277.     }
  278.  
  279.     print(a, N);
  280.     return 0;
  281. }
  282. #endif // task6
  283.  
  284. #ifdef task8
  285. #define N 10
  286. int main() {
  287.     int a[N] = { 0 };
  288.     random(a, N, 10, 1);
  289.     print(a, N);
  290.     puts("\n");
  291.     int sum = sum_chet(a, N), sum2 =sum_nechet(a, N);  
  292.  
  293.     printf("%d", sum2 % sum);
  294.  
  295.     return 0;
  296. }
  297. #endif // task8
  298.  
  299. #ifdef task9
  300. int main() {
  301. #define N 10
  302.     int a[N] = { 0 };
  303.     float s = 0;
  304.     srand(time(NULL));
  305.     random(a, N, 10, 1);
  306.     print(a, N);
  307.     int arif = cent_arifmetical(a, N);
  308.    
  309.     float q = count_of_elements_who_more_then_q0_float(a, N, arif);
  310.     q = q * 100 / N;
  311.     printf("%.2f", q);
  312.     return 0;
  313. }
  314. #endif
  315.  
  316. #ifdef task10
  317. int main() {
  318. #define N 10
  319.     srand(time(NULL));
  320.     float a[N] = { 0 }, b[N] = { 0 };
  321.     random_f(a, N, 10, 1);
  322.     random_f(b, N, 10, 1);
  323.     print_f(a, N);
  324.     puts("\n");
  325.     print_f(b, N);
  326.     puts("\n\n");
  327.  
  328.     float max_a = max_in_array(a, N);
  329.     int i_a = max_index_in_array(a, N);
  330.     float max_b = max_in_array(b, N);
  331.     int i_b = max_index_in_array(b, N);
  332.     float* pa = &a[i_a], * pb = &b[i_b];
  333.     swap_f(pa, pb);
  334.  
  335.     printf("max elements: %f\t%f", *pa, *pb);
  336.     puts("\n");
  337.  
  338.     print_f(a, N);
  339.     puts("\n");
  340.     print_f(b, N);
  341.  
  342.     return 0;
  343. }
  344.  
  345. #endif // task10
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement