С++.Дана дійсна квадратна матриця порядку N. (задати її динамічно).
Поміняти місцями стовпчик, в якому знаходиться максимальний елемент матриці з стовпчиком, в якому знаходиться мінімальний елемент матриці. Якщо номера стовпчиків співпадають, то вивести відповідне повідомлення.
Знайти у кожному стовпці суму всіх парних елементів, записати ці суми в окремий масив та вивести його на екран.
Впорядкувати елементи кожного рядка за зростанням методом швидкого сортуванням.
Ответы
Відповідь:
Пояснення:
#include <iostream>
#include <algorithm>
#include <cstdlib>
using namespace std;
int main() {
setlocale(LC_ALL, "RUS");
// Size of the matrix
int n;
cout << "Введите размер матрицы:";
cin >> n;
// Dynamically allocate memory for the matrix
int** matrix = new int* [n];
for (int i = 0; i < n; i++) {
matrix[i] = new int[n];
}
// Input the elements of the matrix
cout << "Введите элементы матрицы:" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> matrix[i][j];
}
}
// Find the column with the maximum element and the column with the minimum element
int max_col = 0, min_col = 0;
int max_elem = matrix[0][0], min_elem = matrix[0][0];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (matrix[i][j] > max_elem) {
max_elem = matrix[i][j];
max_col = j;
}
if (matrix[i][j] < min_elem) {
min_elem = matrix[i][j];
min_col = j;
}
}
}
// Swap the columns if they are different
if (max_col != min_col) {
for (int i = 0; i < n; i++) {
swap(matrix[i][max_col], matrix[i][min_col]);
}
}
else {
cout << "Максимальные и минимальные элементы находятся в одном столбце" << endl;
}
// Find the sum of all even elements in each column
int* sums = new int[n];
for (int j = 0; j < n; j++) {
sums[j] = 0;
for (int i = 0; i < n; i++) {
if (matrix[i][j] % 2 == 0) {
sums[j] += matrix[i][j];
}
}
}
// Print the sums
cout << "Суммы четных элементов в каждом столбце: ";
for (int j = 0; j < n; j++) {
cout << sums[j] << " ";
}
cout << endl;
// Sort the elements in each row using the quick sort algorithm
for (int i = 0; i < n; i++) {
sort(matrix[i], matrix[i] + n);
}
// Print the sorted matrix
cout << "Отсортированная матрица:" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j] << " ";
// Deallocate memory for the matrix
for (int i = 0; i < n; i++) {
delete[] matrix[i];
}
delete[] matrix;
// Deallocate memory for the array of sums
delete[] sums;
return 0;
}
}
}