C/C++

C++ Написать программу.

Написать программу, которая вводит по строкам с клавиатуры
двумерный динамический массив вещественных чисел и вычисляет сумму
его элементов по столбцам. Количество элементов массива задается
пользователем. Для ввода-вывода элементов, нахождения суммы и вывода
значений разработать соответствующие функции. Программа запрашивает
количество элементов массива по строкам и столбцам, отображает введенный
массив и сумму элементов в каждом столбце. Перед вводом каждого элемента
массива должна выводиться подсказка с номером элемента массива.
#include <iostream>

using namespace std;

void vvod(double ** A, const int n, const int m)
{ // ввод по строкам
for(int x = 0; x < n; x++)
for(int y = 0; y < m; y++)
{
cout << "A[" << x << "][" << y << "] = ";
cin >> A[x][y];
}
}

void print(double ** A, const int n, const int m)
{ // вывод на экран
for(int x = 0; x < n; x++)
{
for(int y = 0; y < m; y++)
{
cout << A[x][y] << '\t';
}
cout << endl;
}
}

void sum(double ** A, const int n, const int m)
{ // суммы в столбцах
double sum;
for(int y = 0; y < m; y++)
{
sum = 0.;
for(int x = 0; x < n; x++)
sum += A[x][y];
cout << "Сумма в столбце " << y + 1 << " равна " << sum << endl;
}
}

int main()
{
int n,m;
do
{
cout << "Введите количество строк: ";
cin >> n;
} while(n <= 0);
do
{
cout << "Введите количество стролбцов: ";
cin >> m;
} while(m <= 0);

double ** A;
A = new double * [n]; // выделение памяти
for(int x = 0; x < n; x++)
A[x] = new double[m];

vvod(A,n,m);
print(A,n,m);
sum(A,n,m);

// Освобождение памяти
if(A != NULL)
{
for(int x = 0; x < n; x++)
delete [] A[x];
delete [] A;
A = NULL;
}

return 0;
}
Михаил Третьеченко
Михаил Третьеченко
66 405
Лучший ответ