Задание:
Задано квадратный двумерный массив (матрицу) целых чисел А[n, n]. Отсортировать побочную диагональ массива методом №1 метода вставки (с линейным поиском слева) по возрастанию.
Решение:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
srand((int)time(0));
int N, n;
cout << "N=";
cin >> n;
int **a= new int *[n];
for (int i = 0; i < n; i++)
a[i] = new int[n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
a[i][j]=rand()%9 + 1;
cout << a[i][j] << " ";
}
cout << "\n";
}
cout << "\n";
for (int i = 0; i < n-1; i++)
for (int j = 0; j < n-i-1; j++)
if (a[j][j] > a[j+1][j+1])
swap(a[j][j], a[j+1][j+1]);
for (int i = 0; i < n-1; i++)
for (int j = 0; j < n-i-1; j++)
if (a[n-1-j][j] > a[n-2-j][j+1])
swap(a[n-1-j][j], a[n-2-j][j+1]);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
cout << a[i][j] << " ";
cout << "\n";
}
for (int i = 0; i < n; i++)
delete[]a[i];
delete[]a;
system("pause");
return 0;
}
Результат: