Advertisement
VariableRiw

SumPr

May 29th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.44 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #define l 2                                                             // количество строк и столбцов в квадратной матрице
  5. #define D 10                                                            // диапазон до 10
  6.  
  7. int main(void)
  8. {
  9.     FILE*F1; FILE*F2;
  10.     short n, i, k, j, detA = 0;     // n - количество матриц; i - счётчик строк; j - счётчик столбцов; k - счётчик количества матриц; max - макс эл матрицы; min - мин эл матрицы; detA - определитель матрицы;
  11.     int R[l][l];
  12.     int  max, min;
  13.     char c;
  14.     setlocale(LC_ALL, "Rus");
  15.     printf("Введите n: ");
  16.     scanf_s("%d", &n);
  17.     srand(time(NULL));
  18.     errno_t fil;
  19.     fil = fopen_s(&F1, "F1.txt", "w");
  20.     if (fil != NULL)
  21.         printf("Ошибка при создании файла F1!\n");
  22.     else
  23.     {
  24.         for (k = 0; k < n; k++)                                             // создаём несколько матриц lхl
  25.         {
  26.             for (i = 0; i < l; i++)                                         // создаём матрицу из случайных элементов в диапазоне от 0 до 10
  27.             {
  28.                 for (j = 0; j < l; j++)
  29.                 {
  30.                     R[i][j] = rand() % D;
  31.                     fprintf(F1, "%d\t", R[i][j]);
  32.                 }
  33.                 fprintf(F1, "\n\n");
  34.             }
  35.             fprintf(F1, "\n\n");
  36.         }
  37.         fclose(F1);
  38.  
  39.         fil = fopen_s(&F1, "F1.txt", "r");      // считываем из файла F1 данные
  40.         if (fil != NULL)
  41.             printf("Ошибка при открытии файла F1!\n");
  42.         else
  43.         {
  44.             fil = fopen_s(&F2, "F2.txt", "w");
  45.             if (fil != NULL)
  46.                 printf("Ошибка при создании файла F2!\n");
  47.             else
  48.             {
  49.                 for (k = 0; k < n; k++)                                             // переписываем несколько матриц lхl из файла F1
  50.                 {
  51.                     max = -INT_MAX;
  52.                     min = INT_MAX;
  53.                     for (i = 0; i < l; i++)
  54.                     {
  55.                         for (j = 0; j < l; j++)
  56.  
  57.                         {
  58.                             c = fgetc(F1);                                      //получаем очередной элемент
  59.                             if ((c != '\t') && (c != '\n'))                     // если элемент не равен концу строки или табуляции - записываем его в массив
  60.                             {
  61.                                 R[i][j] = c - 48;
  62.  
  63.                                 if (R[i][j] > max)
  64.                                     max = R[i][j];
  65.                                 if (R[i][j] < min)
  66.                                     min = R[i][j];
  67.                             }
  68.                             else if ((c == '\t') || (c == '\n'))                // если элемент равен концу строки или табуляции - отнимаем счётчик столбца, чтобы пробел не считался элементом массива
  69.                             {
  70.                                 j = j - 1;
  71.                             }
  72.                             fputc(c, F2);                                       // записываем элемент в файл F2
  73.                         }
  74.                     }
  75.                     if (l == 2)
  76.                     {
  77.                         detA = (R[0][0] * R[1][1]) - (R[1][0] * R[0][1]);
  78.                     }
  79.                     else if (l == 1)
  80.                         detA = R[i][j];
  81.                     else if (l == 3)
  82.                         detA = ((R[0][0] * R[1][1] * R[2][2]) + (R[0][1] * R[1][2] * R[2][0]) + (R[0][2] * R[1][0] * R[2][1])) - ((R[0][2] * R[1][1] * R[2][0]) + (R[0][1] * R[1][0] * R[2][2]) + (R[0][0] * R[1][2] * R[2][1]));
  83.                     fprintf(F2, "\n");
  84.                     fprintf(F2, "Max= %d\n", max);
  85.                     fprintf(F2, "Min= %d\n", min);
  86.                     fprintf(F2, "detA= %d\n", detA);
  87.  
  88.                 }
  89.                 fclose(F1);
  90.                 fclose(F2);
  91.                 printf("Изменения файла F2 успешно применены.\n");
  92.             }
  93.             printf("Изменения файла F1 успешно применены.\n");
  94.         }
  95.     }
  96.     system("pause");
  97.     return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement