C++ напишите программу, которая выводит на экран двухмерный массив размерностью nхn, заполненный случайными числами от 0 до 9. после вывода массива выводится максимальное значение из всех ячеек главной диагонали и минимальное значение из всех ячеек побочной диагонали, а после этого сумма всех ячеек главной и побочной диагоналей. рекомендуемый вид экрана ниже. -> enter n: 3 4 2 6 5 4 1 9 7 6 main diag max: 6 sub diag min: 4 sum main and sub: 29
#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;
int main() {
int n, s = 0, max = 0, min = 9;
srand(time(NULL));
do {
cout << "Input size of matrix: n = ";
cin >> n;
if (n < 0)
{
cout << "Input error! n < 0. Please try again" << endl;
continue;
}
else break;
} while (true);
int **matr = new int* [n];
for(int i = 0; i < n; i++)
matr[i] = new int [n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n;j++)
{
matr[i][j] = rand() % 10;
cout << matr[i][j] << " ";
}
cout << endl;
}
for (int i = 0; i < n; i++)
{
if (max < matr[i][i])
max = matr[i][i];
if (min > matr[i][n-i-1])
min = matr[i][n-i-1];
s += matr[i][i] + matr[i][n - i - 1];
}
if (n % 2 != 0)
s -= matr[n / 2][n / 2];
cout <<"Maximum number on the main diagonal: " << max << endl << "Minimum number on the secondary diagonal: " << min << endl << "Sum of numbers on the diagonals: " << s;
return 0;
}
/* Редактор не сохраняет отступы зачастую, поэтому прикрепил .cpp файл с кодом */