Advertisement
Guest User

Untitled

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