Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- #include <locale.h>
- #include <malloc.h>
- using namespace std;
- int main() {
- setlocale(LC_ALL, "Russian");
- int n, m;
- const char task[] = "Задание: Из заданной матрицы сформировать новую, удалив строку и столбец, которым принадлежит минимальный (один любой из минимальных, если их несколько) элементов.\n";
- printf("%s", task);
- printf("%s", "Введите размеры матрицы(кол-во строк и столбцов через пробел: ");
- scanf_s("%d%d", &n, &m);
- int **a = (int**)malloc(n * sizeof(int*));
- printf("%s", "Введите матрицу:\n");
- for (int i = 0; i < n; i++) {
- a[i] = (int*)malloc(m * sizeof(int));
- for (int j = 0; j < m; j++)
- scanf_s("%d", &a[i][j]);
- }
- int flagi = 0;
- int min = a[0][0], ii = 0, jj = 0;
- for (int i = 0; i < n; i++)
- for (int j = 0; j < m; j++)
- if (a[i][j] < min) {
- min = a[i][j];
- ii = i;
- jj = j;
- }
- int** b = (int**)malloc((n - 1) * sizeof(int*));
- for (int i = 0; i < n; i++)
- if (i != ii) {
- int flagj = 0;
- b[i - flagi] = (int*)malloc((m - 1) * sizeof(int));
- for (int j = 0; j < m; j++)
- if (j != jj)
- b[i - flagi][j - flagj] = a[i][j];
- else
- flagj++;
- }
- else
- flagi++;
- printf("%s", "Новая матрица: \n");
- for (int i = 0; i < n - 1; i++) {
- for (int j = 0; j < m - 1; j++)
- printf("%d%c", b[i][j], ' ');
- printf("%s", "\n");
- }
- for (int i = 0; i < n; i++)
- free(a[i]);
- free(a);
- for (int i = 0; i < n - 1; i++)
- free(b[i]);
- free(b);
- }
Add Comment
Please, Sign In to add comment