C/C++

Помогите решить задачу . C++

Найти произведение элементов в каждом столбце массива размером MxN,элементы которого вводятся с клавиатуры
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int N,M;
do
{
cout << "N: ";
cin >> N;
}while(N < 1);
do
{
cout << "M: ";
cin >> M;
}while(M < 1 || N == M);
int ** A = new int* [N];
for(int x = 0; x < N; x++)
A[x] = new int[M];
int * P = new int[M];

for(int x = 0; x < N; x++)
{
for(int y = 0; y < M; y++)
{
cout << "A["<<x<<"]["<<y<<"]=";
cin >> A[x][y]; // ручной ввод
}
}
cout << endl;

for(int x = 0; x < N; x++)
{
for(int y = 0; y < M; y++)
cout << A[x][y] << '\t'; // вывод на экран
cout << endl;
}
cout << endl;

for(int y = 0; y < M; y++)
{
P[y] = 1;
for(int x = 0; x < N; x++)
P[y] *= A[x][y]; // умножение элементов столбца
}

cout << "P: ";
for(int y = 0; y < M; y++)
cout << P[y] << ' '; // вывод на экран произведений столбцов
cout << endl;

if(P != (int*) nullptr)
{
delete [] P;
P = (int*) nullptr;
}
else exit(1);
if(A != (int**) nullptr)
{
for(int x = 0; x < N; x++)
{
if(A[x] != (int*) nullptr)
{
delete [] A[x];
A[x] = (int*) nullptr;
}
else exit(1);
}
delete [] A;
A = (int**) nullptr;
}
else exit(1);
return 0;
}
Артем Новиков
Артем Новиков
62 535
Лучший ответ