Дана квадратная матрица A[n×n]. Напишите программу обмена
местами максимального и минимального элементов побочной диагонали
матрицы.
C/C++
Программирование, с++ помогите
#include < iostream >
#include < vector >
using namespace std;
int main(){
int n;
cin >> n;
vector< vector < int > > a(n, vector< int > (n));
for(auto &i: a)
for(auto &j: i)
cin >> j;
pair< int, pair< int, int > > maxElem = {a[0][n - 1], {0, n - 1}}, minElem = maxElem;
for(int i = 0; i < n; i++){
if(a[i][n - i - 1] > maxElem.first)
maxElem = {a[i][n - i - 1], {i, n - i - 1}};
if(a[i][n - i - 1] < minElem.first)
minElem = {a[i][n - i - 1], {i, n - i - 1}};
}
swap(a[minElem.second.first][minElem.second.second], a[maxElem.second.first][maxElem.second.second]);
for(auto &i: a){
for(auto &j: i)
cout << j << " ";
cout << "\n";
}
}
#include < vector >
using namespace std;
int main(){
int n;
cin >> n;
vector< vector < int > > a(n, vector< int > (n));
for(auto &i: a)
for(auto &j: i)
cin >> j;
pair< int, pair< int, int > > maxElem = {a[0][n - 1], {0, n - 1}}, minElem = maxElem;
for(int i = 0; i < n; i++){
if(a[i][n - i - 1] > maxElem.first)
maxElem = {a[i][n - i - 1], {i, n - i - 1}};
if(a[i][n - i - 1] < minElem.first)
minElem = {a[i][n - i - 1], {i, n - i - 1}};
}
swap(a[minElem.second.first][minElem.second.second], a[maxElem.second.first][maxElem.second.second]);
for(auto &i: a){
for(auto &j: i)
cout << j << " ";
cout << "\n";
}
}
Надо сразу и подробно сообщать все спецификации задачи: что за матрица -с элементами какого типа? откуда она берётся? и что делать, если максимальный элемент, минимальный элемент или оба они сразу не единственные или одинаковые? и ещё -нужно ли выводить исходную и преобразованную матрицы?
В этой программе матрица с элементами типа int формируется случайнымым образом из не более чем трёхзначных чисел, выводится на экран, а потом в ней все минимальные элементы побочной диагонали принимают максимальное значение, а все максимальные элементы -минимальное, минимальное и максимальное значения выдаются на экран, после чего преобразованная матрица тоже выводится на экран:
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
void print_matrix(int **a, int n)
{ int i, j; for (i = 0; i < n; i++)
{ for (j = 0; j < n; j++) cout << setw(5) << a[i][j];
cout << endl; } }
int main()
{ int i, j, k, n, max, min; cout << "n: "; cin >> n;
int **a = new int *[n]; for (i = 0; i < n; i++)
a[i] = new int [n]; srand(time(nullptr));
for (i = 0; i < n; i++) for (j = 0; j < n; j++)
a[i][j] = rand() % 1999 - 999; j = n - 1;
print_matrix(a, n); min = max = a[0][j];
for (i = 0; i < n; i++) { k = a[i][j - i];
if (k < min) min = k; if (k > max) max = k; }
cout << "min = " << min << "\nmax = "
<< max << endl; for (i = 0; i < n; i++)
{ k = a[i][j - i]; if (k == min) a[i][j - i] = max;
if (k == max) a[i][j - i] = min; }
print_matrix(a, n); }

В этой программе матрица с элементами типа int формируется случайнымым образом из не более чем трёхзначных чисел, выводится на экран, а потом в ней все минимальные элементы побочной диагонали принимают максимальное значение, а все максимальные элементы -минимальное, минимальное и максимальное значения выдаются на экран, после чего преобразованная матрица тоже выводится на экран:
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
void print_matrix(int **a, int n)
{ int i, j; for (i = 0; i < n; i++)
{ for (j = 0; j < n; j++) cout << setw(5) << a[i][j];
cout << endl; } }
int main()
{ int i, j, k, n, max, min; cout << "n: "; cin >> n;
int **a = new int *[n]; for (i = 0; i < n; i++)
a[i] = new int [n]; srand(time(nullptr));
for (i = 0; i < n; i++) for (j = 0; j < n; j++)
a[i][j] = rand() % 1999 - 999; j = n - 1;
print_matrix(a, n); min = max = a[0][j];
for (i = 0; i < n; i++) { k = a[i][j - i];
if (k < min) min = k; if (k > max) max = k; }
cout << "min = " << min << "\nmax = "
<< max << endl; for (i = 0; i < n; i++)
{ k = a[i][j - i]; if (k == min) a[i][j - i] = max;
if (k == max) a[i][j - i] = min; }
print_matrix(a, n); }

1
Похожие вопросы
- Программирование С++. Помогите)
- Программирование С++ помогите пожалуйста!
- Программирование С++ помогите пожалуйста
- Программирование, пожалуйста помогите очень нужно решить
- Программирование C++.Помогите решить пожалуйста
- Программирование C++ Помогите решить задачу
- Программирование С++. Помогите, пожалуйста, решить задачу.
- Программирование С++. Помогите, пожалуйста, написать код (по-проще как-нибудь)
- Программирование С++, помогите,пожалуйста
- Программирование c++. Помогите в написании кода!