Отсортировать главные диагонали матрицы по возрастанию методом вставки - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана матрица размерностью nxn, содержащая целые числа. Отсортировать главные диагонали матрицы по возрастанию методом вставки. Заранее благодарен!

Решение задачи: «Отсортировать главные диагонали матрицы по возрастанию методом вставки»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#define H 5
#define W 5
int main(){
int matrix[H][W] = {
        {2,3,3,1,5},
        {2,1,2,2,2},
        {2,3,7,4,5},
        {1,1,2,3,6},
        {1,2,3,4,5}
    };
 
int i,j,tmp;
 
for( i = 1; i < H ; i++ ){
tmp = matrix[i][i];
   for( j = i; j>0&&matrix[j-1][j-1]>tmp; j--)matrix[j][j]=matrix[j-1][j-1];
   matrix[j][j]=tmp;
}
 
 
for( i = 0 ; i < H; i++ ){
    for( j = 0 ; j < W; j++)printf("%d ",matrix[i][j]);
    printf("\n");
}
 
getch();
return 0;
}

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

Код представлен на языке C и решает задачу сортировки главных диагоналей матрицы по возрастанию методом вставки. Список действий, которые выполняются в коде:

  1. Включаются необходимые заголовочные файлы:
    • stdio.h - для работы с вводом/выводом;
    • conio.h - для работы с клавиатурой и мышью (в данном случае используется функция getch() для приостановки выполнения программы и получения ввода от пользователя).
  2. Определяются размеры матрицы:
    • H - количество строк;
    • W - количество столбцов.
  3. Инициализируется матрица:
    • Матрица matrix заполняется значениями.
  4. Сортировка главных диагоналей матрицы методом вставки:
    • Внешний цикл for проходит по каждой строке матрицы, начиная со второй строки (индекс 1), так как первая строка уже будет содержать отсортированные значения.
    • Внутренний цикл for проходит по каждой позиции внутри текущей строки. Если значение в текущей позиции больше значения в предыдущей позиции (т.е. на диагонали влево и вверх), то значения меняются местами.
    • Значение на текущей позиции присваивается значению, которое было на предыдущей позиции.
  5. Вывод отсортированной матрицы:
    • Внутренний цикл for проходит по каждой строке матрицы.
    • Внешний цикл for проходит по каждому столбцу текущей строки.
    • Каждое значение матрицы выводится на экран через функцию printf().
  6. Ожидание нажатия клавиши:
    • Функция getch() ожидает нажатия клавиши.
  7. Возврат 0:
    • Значение 0 возвращается в качестве кода завершения программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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