C++ квадратная матрица порядка N
Дано квадратная матрица порядка N. (задать ее динамически).
Поменять местами колонку, в которой находится максимальный элемент матрицы с колонкой, в которой находится минимальный элемент матрицы. Если номера столбцов совпадают, вывести соответствующее сообщение. Найти в каждом столбце сумму всех четных элементов, записать эти суммы в отдельный массив и вывести его на экран. Упорядочить элементы каждой строки по возрастанию методом быстрой сортировки. Помогите поправить код
#include <iostream>
#include <algorithm>
#include <cstdlib>
using namespace std;
int main() {
setlocale(LC_ALL, "RUS");
// Размер матрицы
int n;
cout << "Введите размер матрицы:";
cin >> n;
// Выделение динамической памяти для матрицы
int** matrix = new int* [n];
for (int i = 0; i < n; i++) {
matrix[i] = new int[n];
}
// Ввод элементов матрицы
cout << "Введите элементы матрицы:" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> matrix[i][j];
}
}
// Поиск столбца с максимальный и минимальным элементом матицы
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;
}
}
}
// Поменять местами столбцы в которых находится минимальный и максимальный элемент матрицы
if (max_col != min_col) {
for (int i = 0; i < n; i++) {
swap(matrix[i][max_col], matrix[i][min_col]);
}
}
else {
cout << "Максимальные и минимальные элементы находятся в одном столбце" << endl;
}
// Найти сумму всех четных элементов в кадом столбце
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];
}
}
}
// Вывод суммы четных элементов
cout << "Суммы четных элементов в каждом столбце: ";
for (int j = 0; j < n; j++) {
cout << sums[j] << " ";
}
cout << endl;
// Сортировка элементов методом быстрой сортировки
for (int i = 0; i < n; i++) {
sort(matrix[i], matrix[i] + n);
}
cout << "Отсортированная матрица:" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j] << " ";
// Освобождение памяти матрицы
for (int i = 0; i < n; i++) {
delete[] matrix[i];
}
delete[] matrix;
// Освобождения памяти для массива сумм
delete[] sums;
return 0;
}
}
}
Источник: Stack Overflow на русском