Дан массив А(n, m). Строку, содержащую максимальный элемент, поменять местами со стр?
Дан массив А(n, m). Строку, содержащую максимальный элемент, поменять местами со стр??кой, содержащей минимальный элемент.
Ответ(ы) на вопрос:
Гость
В C++
#include <iostream>
#include <iomanip>
int main()
{
const int n = 5;
const int m = 3;
int A[n][m];
for (int i = 0; i < n; i++) //заполняем как-нибудь массив
for (int j = 0; j < m; j++)
A[i][j] = (i - 3) * (j + 3);
for (int i = 0; i < n; i++) //выведем исходную матрицу на экран
{
for (int j = 0; j < m; j++)
std::cout << std::setw(4) << A[i][j];
std::cout << '\n';
}
int maxEl = A[0][0];
int indexMax = 0;
for (int i = 0; i < n; i++) //найдем максимальный элемент
{
for (int j = 0; j < m; j++)
if (A[i][j] > maxEl)
{
maxEl = A[i][j];
indexMax = i; //номер строки с максимальным элементом
}
}
int minEl = A[0][0];
int indexMin = 0;
for (int i = 0; i < n; i++) //найдем минимальный элемент
{
for (int j = 0; j < m; j++)
if (A[i][j] < minEl)
{
minEl = A[i][j];
indexMin = i; //номер строки с минимальным элементом
}
}
for (int j = 0; j < m; j++) //меняем строки
{
int temp;
temp = A[indexMax][j];
A[indexMax][j] = A[indexMin][j];
A[indexMin][j] = temp;
}
std::cout << "\n\n";
for (int i = 0; i < n; i++) //выведем полученную матрицу на экран
{
for (int j = 0; j < m; j++)
std::cout << std::setw(4) << A[i][j];
std::cout << '\n';
}
return 0;
}
Не нашли ответ?
Похожие вопросы