Создать динамические массивы, используя указатели.

Создать динамические массивы, используя указатели. Дан двумерный массив a, размером (n⋅m). Заполнить одномерный массив, найдя сумму положительных элементов в каждом столбце матрицы.
Дополнительные параметры: codeFlowType: codeWrite codeFlowLang: C++
Создано: 18.02.2025 12:24

Создать динамические массивы, используя указатели. Дан двумерный массив 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;
}

Как работает код:

  1. Программа запрашивает у пользователя размеры двумерного массива (n и m).
  2. Создается динамический двумерный массив a размером (n x m).
  3. Пользователь заполняет массив значениями.
  4. Создается одномерный массив sum, в который заносятся суммы положительных элементов каждого столбца.
  5. Программа проходит по каждому столбцу и для каждого положительного элемента добавляет его значение к соответствующему элементу в массиве sum.
  6. Наконец, результаты выводятся на экран, и вся выделенная память освобождается.