Задан квадратный массив А из N строк и N столбцов, N – нечетное число. В предложенном массиве можно выделить ДВЕ диагонали. Эти диагонали отчерчивают четыре треугольника с числами. Произвести замену верхнего и нижнего треугольников, правого и левого треугольников. НАПИСАТЬ НА C++!
Пример на фото: 1 матрица исходная, 2 матрица после замены.
Answers & Comments
#include <iostream>
using namespace std;
int main()
{
const int n = 7;
int mas[n][n] = {
{0, 1, 1, 1, 1, 1, 0},
{3, 0, 1, 1, 1, 0, 4},
{3, 3, 0, 1, 0, 4, 4},
{3, 3, 3, 0, 4, 4, 4},
{3, 3, 0, 2, 0, 4, 4},
{3, 0, 2, 2, 2, 0, 4},
{0, 2, 2, 2, 2, 2, 0}};//инициализируем матрицу
for (int jjj = 0; jjj < (n - 1) / 2; jjj++)
for (int kkk = 1; kkk < n - 1; kkk++)
swap(mas[jjj][kkk], mas[n - 1 - jjj][kkk]);// меняем верхний с нижним
for (int jjj = 0; jjj < (n - 1) / 2; jjj++)
for (int kkk = 1; kkk < n - 1; kkk++)
swap(mas[kkk][jjj], mas[kkk][n - 1 - jjj]);// меняем правый с левым
for (int jjj = 0; jjj < n; jjj++)
{
for (int kkk = 0; kkk < n; kkk++)
cout << mas[jjj][kkk] << " ";
cout << endl;
};//выводим матрицу
}