codeFlowType:
codeWrite
codeFlowLang:
C++
Создать динамические массивы, используя указатели. Дан двумерный массив a, размером (n⋅m). Заполнить одномерный массив, найдя сумму положительных элементов в каждом столбце матрицы.
Вот пример программы на C++, которая создает динамический двумерный массив и вычисляет сумму положительных элементов в каждом столбце, сохраняя результаты в одномерном массиве.
#include <iostream>
int main() {
int n, m;
// Ввод размеров матрицы
std::cout << "Введите количество строк (n): ";
std::cin >> n;
std::cout << "Введите количество столбцов (m): ";
std::cin >> m;
// Создаем динамический двумерный массив
int** a = new int*[n];
for (int i = 0; i < n; i++) {
a[i] = new int[m];
}
// Заполняем массив случайными числами и выводим его
std::cout << "Заполните матрицу (n x m) положительными и отрицательными числами:\n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
std::cout << "a[" << i << "][" << j << "]: ";
std::cin >> a[i][j];
}
}
// Создаем одномерный массив для хранения сумм
int* sum = new int[m];
for (int j = 0; j < m; j++) {
sum[j] = 0; // Инициализация суммы для каждого столбца
}
// Считаем сумму положительных элементов в каждом столбце
for (int j = 0; j < m; j++) {
for (int i = 0; i < n; i++) {
if (a[i][j] > 0) {
sum[j] += a[i][j];
}
}
}
// Выводим результаты
std::cout << "Сумма положительных элементов в каждом столбце:\n";
for (int j = 0; j < m; j++) {
std::cout << "Столбец " << j + 1 << ": " << sum[j] << std::endl;
}
// Освобождаем память
for (int i = 0; i < n; i++) {
delete[] a[i];
}
delete[] a;
delete[] sum;
return 0;
}
a
размером (n x m).sum
, в который заносятся суммы положительных элементов каждого столбца.sum
.