C/C++

Помогите с вопросом, С++

Дана квадратная матрица A[n×n]. Напишите программу обмена

местами максимального и минимального элементов побочной диагонали

матрицы.
На случай если в рассматриваемой диагонали максимальный и минимальный элементы могут быть неединственными лучше применить обмен "всех на всех", то есть все минимальные элементы на максимальные, а все максимальные на минимальные. С рандомной матрицей с элементами из [-99;99]:
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std; int n;
void print(int **a) { int i, j; for (i = 0; i < n; i++)
{ for (j = 0; j < n; j++) cout << setw(4) << a[i][j];
cout << endl; } cout << endl; }
int main() { int i, j, l, m, min, max; while (true)
{ cout << "n: "; cin >> n; int **A = new int *[n];
for (i = 0; i < n; i++) A[i] = new int [n]; m = n - 1;
srand(time(NULL)); for (i = 0; i < n; i++)
for (j = 0; j < n; j++) A[i][j] = rand() % 199 - 99;
print(A); min = max = A[m][0];
for (i = 1; i < n; i++) { l = A[i][m - i]; if (l > max)
max = l; if (l < min) min = l; }
for (i = 0; i < n; i++) { l = A[i][m - i]; if (l == min)
{ A[i][m - i] = max; continue; } if (l == max)
A[i][m - i] = min; } cout << "\nmin = " << min
<< ", max = " << max << endl << endl; print(A);
for (i = 0; i < n; i++) delete [] A[i]; delete [] A; } }
Mergen Geldiyev
Mergen Geldiyev
66 572
Лучший ответ