Расположить максимальные элементы строк вдоль побочной диагонали матрицы - C (СИ)
Формулировка задачи:
Здравствуйте. Помогите, пожалуйста, решить задачу. Дан двумерный массив размера (N*N) (N=5). Расположить максимальные элементы строк вдоль побочной диагонали.
Решение задачи: «Расположить максимальные элементы строк вдоль побочной диагонали матрицы»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
int main(void)
{
int A[N][N], i, j, iMax, tmp;
srand(time(NULL));
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
A[i][j] = rand() % 10;
printf("%d ", A[i][j]);
}
printf("\n");
}
printf("\nAfter:\n");
for (i = 0; i < N; i++)
{
iMax = 0;
for (j = 1; j < N; j++)
if (A[i][iMax] < A[i][j])
iMax = j;
if (iMax != N - 1 - i)
{
tmp = A[i][N - 1 - i];
A[i][N - 1 - i] = A[i][iMax];
A[i][iMax] = tmp;
}
for (j = 0; j < N; j++)
printf("%d ", A[i][j]);
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем матрицу A размером NxN и инициализируем её случайными значениями от 0 до 9
- Выводим матрицу A на экран
- Повторяем этот процесс для каждой строки матрицы (для i от 0 до N-1)
- Во время прохода по матрице (для j от 0 до N-2) находим максимальный элемент в текущей строке (iMax)
- Если максимальный элемент находится не на своём месте (iMax != N-1-i), меняем его местами с элементом, находящимся на позиции N-1-i
- Выводим полученную строку на экран
- Возвращаем 0, чтобы указать, что программа успешно завершилась