MadCortez

Untitled

Sep 8th, 2021 (edited)
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.96 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <locale.h>
  4. #include <malloc.h>
  5.  
  6. using namespace std;
  7.  
  8. int main() {
  9.     setlocale(LC_ALL, "Russian");
  10.     int n, m;
  11.     const char task[] = "Задание: Из заданной матрицы сформировать новую, удалив строку и столбец, которым принадлежит минимальный (один любой из минимальных, если их несколько) элементов.\n";
  12.     printf("%s", task);
  13.     printf("%s", "Введите размеры матрицы(кол-во строк и столбцов через пробел: ");
  14.     scanf_s("%d%d", &n, &m);
  15.     int **a = (int**)malloc(n * sizeof(int*));
  16.     printf("%s", "Введите матрицу:\n");
  17.     for (int i = 0; i < n; i++) {
  18.         a[i] = (int*)malloc(m * sizeof(int));
  19.         for (int j = 0; j < m; j++)
  20.             scanf_s("%d", &a[i][j]);
  21.     }
  22.     int flagi = 0;
  23.     int min = a[0][0], ii = 0, jj = 0;
  24.     for (int i = 0; i < n; i++)
  25.         for (int j = 0; j < m; j++)
  26.             if (a[i][j] < min) {
  27.                 min = a[i][j];
  28.                 ii = i;
  29.                 jj = j;
  30.             }
  31.     int** b = (int**)malloc((n - 1) * sizeof(int*));
  32.     for (int i = 0; i < n; i++)
  33.         if (i != ii) {
  34.             int flagj = 0;
  35.             b[i - flagi] = (int*)malloc((m - 1) * sizeof(int));
  36.             for (int j = 0; j < m; j++)
  37.                 if (j != jj)
  38.                     b[i - flagi][j - flagj] = a[i][j];
  39.                 else
  40.                     flagj++;
  41.         }
  42.         else
  43.             flagi++;
  44.     printf("%s", "Новая матрица: \n");
  45.     for (int i = 0; i < n - 1; i++) {
  46.         for (int j = 0; j < m - 1; j++)
  47.             printf("%d%c", b[i][j], ' ');
  48.         printf("%s", "\n");
  49.     }
  50.     for (int i = 0; i < n; i++)
  51.         free(a[i]);
  52.     free(a);
  53.     for (int i = 0; i < n - 1; i++)
  54.         free(b[i]);
  55.     free(b);
  56. }
Add Comment
Please, Sign In to add comment