Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
16.06.2026
Размер:
19.2 Кб
Скачать

10. Написать функцию для нахождения суммы элементов для каждого столбца двумерного динамического массива. Поменять местами столбцы с максимальным и минимальным значением суммы.

#include <iostream>

#include <limits>

void findSumOfColumns(int** matrix, int numRows, int numCols) {

if (numRows <= 0 || numCols <= 0) {

std::cout << "Invalid matrix dimensions." << std::endl;

return;

}

int* columnSums = new int[numCols];

// Вычисление суммы элементов для каждого столбца

for (int j = 0; j < numCols; ++j) {

int sum = 0;

for (int i = 0; i < numRows; ++i) {

sum += matrix[i][j];

}

columnSums[j] = sum;

std::cout << "Sum of column " << j + 1 << ": " << sum << std::endl;

}

// Нахождение индексов столбцов с минимальной и максимальной суммой

int minSumIndex = 0;

int maxSumIndex = 0;

for (int j = 1; j < numCols; ++j) {

if (columnSums[j] < columnSums[minSumIndex]) {

minSumIndex = j;

}

if (columnSums[j] > columnSums[maxSumIndex]) {

maxSumIndex = j;

}

}

// Поменять местами столбцы с минимальной и максимальной суммой

for (int i = 0; i < numRows; ++i) {

int temp = matrix[i][minSumIndex];

matrix[i][minSumIndex] = matrix[i][maxSumIndex];

matrix[i][maxSumIndex] = temp;

}

std::cout << "Columns with min and max sums are swapped." << std::endl;

// Вывод измененной матрицы

std::cout << "Updated matrix:" << std::endl;

for (int i = 0; i < numRows; ++i) {

for (int j = 0; j < numCols; ++j) {

std::cout << matrix[i][j] << " ";

}

std::cout << std::endl;

}

delete[] columnSums;

}

int main() {

// Пример использования функции

int numRows, numCols;

std::cout << "Enter the number of rows: ";

std::cin >> numRows;

std::cout << "Enter the number of columns: ";

std::cin >> numCols;

// Выделение памяти под двумерный массив

int** matrix = new int*[numRows];

for (int i = 0; i < numRows; ++i) {

matrix[i] = new int[numCols];

}

std::cout << "Enter the elements of the matrix:" << std::endl;

for (int i = 0; i < numRows; ++i) {

for (int j = 0; j < numCols; ++j) {

std::cin >> matrix[i][j];

}

}

findSumOfColumns(matrix, numRows, numCols);

// Освобождение памяти

for (int i = 0; i < numRows; ++i) {

delete[] matrix[i];

}

delete[] matrix;

return 0;

}

Соседние файлы в папке Двумерные динамические Массивы ( Решение)