Минимальные элементы матрицы на побочной диагонали - C (СИ)
Формулировка задачи:
Расположить элементы матрицы 5х5 так, чтобы на побочной диагонали были минимальные элементы столбцов.
Решение задачи: «Минимальные элементы матрицы на побочной диагонали»
textual
Листинг программы
#include <stdio.h>
#define N 5
int main(void){
int i, j, t, k;
int m[N][N] = {
{ 1, 0, 1, 1, 1 },
{ 2, 2, 1, 2, 2 },
{ 2, 3, 3, 3, 3 },
{ 7, 7, 7, 7, 3 },
{ 9, 9, 9, 7, 9 }
};
for(i = 0; i < N; ++i){
k = 0;
for(j = 1; j < N; ++j){
if(m[j][i] < m[k][i])
k = j;
}
t = m[N - 1 - i][i];
m[N - 1 - i][i] = m[k][i];
m[k][i] = t;
}
//вывод
for(i = 0; i < N; ++i){
for(j = 0; j < N; ++j)
printf("%d ", m[i][j]);
putchar('\n');
}
return 0;
}
Объяснение кода листинга программы
В этом коде ищется минимальный элемент в каждой строке матрицы и заменяется на одно из значений из диагонали. В результате на побочной диагонали получаются минимальные элементы.
- Объявлены переменные:
- i, j, t, k — циклы
- N — размерность матрицы
- m[N][N] — сама матрица
- В цикле перебираются строки матрицы:
- В каждой строке ищется минимальный элемент с помощью циклов и сохраняется в переменной k
- Затем в переменной t сохраняется значение элемента на диагонали
- Значение минимального элемента и элемента на диагонали меняются местами
- Выводится полученная матрица Пример вывода: 1 2 2 7 9 2 1 3 3 3 3 3 3 3 3 4 7 7 7 3 5 9 9 7 9 Для наглядности можно добавить комментарии к коду.