5. Написать функцию для нахождения суммы чисел для каждого столбца двумерного динамического массива, удовлетворяющих условию xi,j > a. Здесь a- произвольная величина.
Код:
#include <iostream>
void findSumAboveThreshold(int** matrix, int numRows, int numCols, int a) {
if (numRows <= 0 || numCols <= 0) {
std::cout << "Invalid matrix dimensions." << std::endl;
return;
}
for (int j = 0; j < numCols; ++j) {
int sum = 0;
for (int i = 0; i < numRows; ++i) {
if (matrix[i][j] > a) {
sum += matrix[i][j];
}
}
std::cout << "Sum of column " << j + 1 << ": " << sum << std::endl;
}
}
int main() {
// Пример использования функции
int numRows, numCols, a;
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];
}
}
std::cout << "Enter the threshold value (a): ";
std::cin >> a;
findSumAboveThreshold(matrix, numRows, numCols, a);
// Освобождение памяти
for (int i = 0; i < numRows; ++i) {
delete[] matrix[i];
}
delete[] matrix;
return 0;
}
Результат
