Удаление строки и столбца, содержащих минимальный элемент матрицы - 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;
}

Объяснение кода листинга программы

  1. Включаем файл header, который содержит функции для работы с типами данных C.
  2. Задаем размер матрицы n=5.
  3. Создаем двумерный массив типа double mas[n][n] и инициализируем его значениями.
  4. Создаем двумерный массив типа double mas2[n-1][n-1] для хранения результатов.
  5. Объявляем переменные min, min_row, min_col, i, j, k.
  6. Инициализируем min значением первого элемента первой строки первой колонки матрицы mas.
  7. Инициализируем min_row и min_col значением 0.
  8. Используем два вложенных цикла for для нахождения минимального элемента матрицы mas.
  9. Во время первого прохода циклов, сравниваем каждый элемент матрицы с текущим минимальным значением и обновляем его, если текущий элемент меньше. Также обновляем min_row и min_col, если текущий элемент принадлежит новой строке или колонке с меньшим значением.
  10. Выводим значения матрицы mas на экран.
  11. Используем три вложенных цикла for для перебора элементов матрицы mas2.
  12. Во время первого прохода циклов, проверяем, что текущая итерация i больше или равна min_row и что k меньше n-1. Если это так, увеличиваем k на 1.
  13. Во время второго прохода циклов, копируем элементы из mas в mas2, если j меньше min_col. В противном случае, копируем следующий элемент из следующей строки.
  14. Выводим значения матрицы mas2 на экран.
  15. Возвращаем 0, чтобы указать, что программа успешно завершилась.

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы