Advertisement
_who___

2var

Jun 2nd, 2023 (edited)
1,118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.96 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <stdio.h>
  7. #include <limits.h>
  8.  
  9. int** create_matrix(int n)
  10. {
  11.     int i;
  12.     int** res = calloc(n, sizeof(int*));
  13.     for (i = 0; i < n; i++)
  14.     {
  15.         res[i] = calloc(n, sizeof(int));
  16.     }
  17.     return res;
  18. }
  19.  
  20. int** rand_gen(int** a, int n)
  21. {
  22.     int i, j;
  23.     for (i = 0; i < n; i++)
  24.     {
  25.         for (j = 0; j < n; j++)
  26.         {
  27.             a[i][j] = rand()%5;
  28.         }
  29.     }
  30.     return a;
  31. }
  32.  
  33. int** matrix_mul(int n, int** m1, int** m2)
  34. {
  35.     int i, j, k;
  36.     int** res = create_matrix(n);
  37.  
  38.     for (i = 0; i < n; i++)
  39.     {
  40.         for (j = 0; j < n; j++)
  41.         {
  42.             res[i][j] = 0;
  43.             for (k = 0; k < n; k++)
  44.             {
  45.                 res[i][j] += m1[i][k] * m2[k][j];
  46.             }
  47.         }
  48.     }
  49.     return res;
  50. }
  51.  
  52. int** matrix_sum(int n, int** m1, int** m2)
  53. {
  54.     int i, j;
  55.     int** res = create_matrix(n);
  56.  
  57.     for (i = 0; i < n; i++)
  58.     {
  59.         for (j = 0; j < n; j++)
  60.         {
  61.             res[i][j] = m1[i][j] + m2[i][j];
  62.         }
  63.     }
  64.     return res;
  65. }
  66.  
  67. int main()
  68. {
  69.     double time_spend = 0.0;
  70.     clock_t begin = clock();
  71.  
  72.     srand(time(NULL));
  73.  
  74.     int n, i, j;
  75.  
  76.     scanf_s("%d", &n);
  77.  
  78.     int** matr1 = create_matrix(n);
  79.     int** matr2 = create_matrix(n);
  80.  
  81.     FILE* F;
  82.     FILE* F1;
  83.  
  84.     F = fopen("input.txt", "w");
  85.     F1 = fopen("output.txt", "w");
  86.  
  87.     int** matr11 = create_matrix(n);
  88.     matr11 = rand_gen(matr1, n);
  89.     int** matr22 = create_matrix(n);
  90.     matr22 = rand_gen(matr2, n);
  91.  
  92.     for (i = 0; i < n; i++)
  93.     {
  94.         for (j = 0; j < n; j++)
  95.         {
  96.             fprintf(F, "%d ", matr1[i][j]);
  97.             matr1[i][j] = 0;
  98.         }
  99.         fprintf(F, "\n");
  100.     }
  101.  
  102.     fprintf(F, "\n");
  103.  
  104.     for (i = 0; i < n; i++)
  105.     {
  106.         for (j = 0; j < n; j++)
  107.         {
  108.             fprintf(F, "%d ", matr2[i][j]);
  109.             matr2[i][j] = 0;
  110.         }
  111.         fprintf(F, "\n");
  112.     }
  113.  
  114.  
  115.     fclose(F);
  116.  
  117.     F = fopen("input.txt", "r");
  118.  
  119.     for (i = 0; i < n; i++)
  120.     {
  121.         for (j = 0; j < n; j++)
  122.         {
  123.             fscanf(F, "%d", &matr1[i][j]);
  124.         }
  125.     }
  126.  
  127.     for (i = 0; i < n; i++)
  128.     {
  129.         for (j = 0; j < n; j++)
  130.         {
  131.             fscanf(F, "%d", &matr2[i][j]);
  132.         }
  133.     }
  134.  
  135.     matr11 = matrix_mul(n, matr1, matr2);
  136.     matr22 = matrix_sum(n, matr1, matr2);
  137.  
  138.     for (i = 0; i < n; i++)
  139.     {
  140.         for (j = 0; j < n; j++)
  141.         {
  142.             fprintf(F1, "%d ", matr11[i][j]);
  143.         }
  144.         fprintf(F1, "\n");
  145.     }
  146.  
  147.     fprintf(F1, "\n");
  148.  
  149.     for (i = 0; i < n; i++)
  150.     {
  151.         for (j = 0; j < n; j++)
  152.         {
  153.             fprintf(F1, "%d ", matr22[i][j]);
  154.         }
  155.         fprintf(F1, "\n");
  156.     }
  157.  
  158.     int min = INT_MAX;
  159.     int x, y, count = 0;
  160.  
  161.     for (i = 0; i < n; i++)
  162.     {
  163.         for (j = 0; j < n; j++)
  164.         {
  165.             if (matr1[i][j] < min)
  166.             {
  167.                 min = matr1[i][j];
  168.                 x = i;
  169.                 y = j;
  170.             }
  171.             if (matr1[i][j] % 2 == 0)
  172.             {
  173.                 count++;
  174.             }
  175.         }
  176.     }
  177.  
  178.     printf("coord %d %d\n", x, y);
  179.     printf("nechet %d \n", count);
  180.  
  181.     for (i = 0; i < n; i++)
  182.     {
  183.         free(matr1[i]);
  184.         free(matr2[i]);
  185.         free(matr11[i]);
  186.         free(matr22[i]);
  187.     }
  188.     free(matr1);
  189.     free(matr2);
  190.     free(matr11);
  191.     free(matr22);
  192.  
  193.     clock_t end = clock();
  194.     time_spend += (double)(end - begin) / CLOCKS_PER_SEC;
  195.     printf("time by echpochmak= %lf", time_spend);
  196.     return 0;
  197. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement