Помогите решить задачу по информатике писать код на С++
Написати програму яка має виконувати наступні дії:
1. Вводиться двовимірний масив nxm, з довільними додатніми та від’ємними
значеннями відмінними від нуля.
2. Міняти місцями два рядки, в яких знаходяться мінімальний і максимальні
елементи масиву. Якщо мінімальний і максимальний елементи знаходяться в
одному рядку, то виводити на екран відповідне повідомлення.
3. Обчислювати середнє арифметичне кожного рядка елементів масиву.
Ответы
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 100;
int main() {
// Введення розміру масиву
int n, m;
cout << "Enter n and m: ";
cin >> n >> m;
// Введення елементів масиву
int a[N][N];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << "Enter a[" << i << "][" << j << "]: ";
cin >> a[i][j];
}
}
// Пошук рядків, в яких знаходяться мінімальний і максимальний елементи
int min_i = -1, max_i = -1;
int min_val = INT_MAX, max_val = INT_MIN;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (a[i][j] < min_val) {
min_val = a[i][j];
min_i = i;
}
if (a[i][j] > max_val) {
max_val = a[i][j];
max_i = i;
}
}
}
// Якщо рядки з мінімальним і максимальним елементами різні, то їх міняємо місцями
if (min_i != max_i) {
for (int j = 0; j < m; j++) {
swap(a[min_i][j], a[max_i][j]);
}
} else {
cout << "Min and max elements are in the same row." << endl;
}
// Обчислення середнього арифметичного кожного рядка
for (int i = 0; i < n; i++) {
int sum = 0;
for (int j = 0; j < m; j++) {
sum += a[i][j];
}
cout << "Average of row " << i << ": " << (double)sum / m << endl;
}
return 0;
}