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

Inozemceva1981 Inozemceva1981    3   03.10.2019 11:50    1

Ответы
ivangregori32p08irj ivangregori32p08irj  09.10.2020 14:04

#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 файл с кодом */

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика