Преобразовать матрицу так, чтобы минимальные элементы строк оказались на побочной диагонали - C (СИ)
Формулировка задачи:
2. Преобразовать матрицу Р (7х7) таким образом, чтобы минимальные элементы строк оказались на побочной диагонали.
#include <stdio.h>
#include <stdlib.h>
#define X 7
int main(void)
{
int z[X][X];
int i,j=0,o=3,q=0;
for (i=0;i<X;i++)
{
printf ("--\n");
for (j=0;j<X;j++)
scanf ("%d",&z[i][j]);
}
for (i=0;i<X;i++)
{
j=0;
q=z[i][j];
while (j<X)
{
if (q>z[i][j+1])
{
q=z[i][j+1];
j++;
}
}
z[i][o]=q;
o--;
}
for (i=0;i<X;i++)
{
printf ("--\n");
for (j=0;j<X;j++)
printf ("[%d][%d] = %d\n",z[i][j]);
}
}Решение задачи: «Преобразовать матрицу так, чтобы минимальные элементы строк оказались на побочной диагонали»
textual
Листинг программы
for (int i = 0; i<7; i++){
int n = 0;
for(int j = 1; j< 7; j++){
if (matrica[i][j] < matrica[i][n])
n = j;
}
int tmp = matrica[i][6-i];
matrica[i][6-i] = matrica[i][n];
matrica[i][n] = tmp;
}
Объяснение кода листинга программы
- Перебираем строки матрицы от 0 до 6 (включительно) - 1 итерация
- Для каждой строки, инициализируем переменную
nравной 0 - Перебираем столбцы матрицы от 1 до 6 (включительно) - 1 итерация
- Если элемент в текущем столбце меньше, чем элемент в столбце
n, то обновляем значениеn - Меняем местами элемент в столбце
nс элементом в столбце6-i(гдеi- номер текущей строки) - Меняем местами элемент в столбце
nс элементом в столбцеi - Возвращаемся к п.1 и переходим к следующей строке