Удаление строки и столбца, содержащих минимальный элемент матрицы - C (СИ)
Формулировка задачи:
Составить программу удаления строки и столбца, содержащих минимальный элемент матрицы A(N,N)
Решение задачи: «Удаление строки и столбца, содержащих минимальный элемент матрицы»
textual
Листинг программы
#include <stdio.h> #define n 5 int main() { double mas[n][n]={{1.0,2.0,3.0,4.0,5.0},{6.0,7.0,8.0,9.0,10.0},{1.0,13.0,2.0,5.0,4.0},{7.0,0.5,5.0,8.0,9.0},{1.0,2.0,3.0,4.0,5.0}} ; double mas2[n-1][n-1]; double min; int i,j,min_row,min_col,k; min=mas[0][0]; min_row=0; min_col=0; for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%6.2lf",mas[i][j]); if(mas[i][j]<min) { min=mas[i][j]; min_row=i; min_col=j; } } printf("\n"); } i=j=k=0; for(i=0;i<n-1;i++) { if(i>=min_row&&k<n-1) k++; for(j=0;j<n-1;j++) if(j<min_col) mas2[i][j]=mas[k][j]; else mas2[i][j]=mas[k][j+1]; k++; } printf("\n"); for(i=0;i<n-1;i++) { for(j=0;j<n-1;j++) { printf("%6.2lf",mas2[i][j]); } printf("\n"); } return 0; }
Объяснение кода листинга программы
- Включаем файл header, который содержит функции для работы с типами данных C.
- Задаем размер матрицы n=5.
- Создаем двумерный массив типа double mas[n][n] и инициализируем его значениями.
- Создаем двумерный массив типа double mas2[n-1][n-1] для хранения результатов.
- Объявляем переменные min, min_row, min_col, i, j, k.
- Инициализируем min значением первого элемента первой строки первой колонки матрицы mas.
- Инициализируем min_row и min_col значением 0.
- Используем два вложенных цикла for для нахождения минимального элемента матрицы mas.
- Во время первого прохода циклов, сравниваем каждый элемент матрицы с текущим минимальным значением и обновляем его, если текущий элемент меньше. Также обновляем min_row и min_col, если текущий элемент принадлежит новой строке или колонке с меньшим значением.
- Выводим значения матрицы mas на экран.
- Используем три вложенных цикла for для перебора элементов матрицы mas2.
- Во время первого прохода циклов, проверяем, что текущая итерация i больше или равна min_row и что k меньше n-1. Если это так, увеличиваем k на 1.
- Во время второго прохода циклов, копируем элементы из mas в mas2, если j меньше min_col. В противном случае, копируем следующий элемент из следующей строки.
- Выводим значения матрицы mas2 на экран.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.