C/C++

Помогите решить задачу с двумерным массивом на C++

Найти номер столбца массива размером МхN, в котором находится наименьшее количество положительных элементов. Элементы вводятся с клавиатуры.
// если таких столбцов несколько,
// выводится первый из них

#include <iostream>
using namespace std;
int main()
{
int M,N;
do
{
cout << "Введите количество строк: ";
cin >> M;
}while(M < 1);
do
{
cout << "Введите количество столбцов: ";
cin >> N;
}while(N<1 || N == M);
int * * A;
A = new int*[M];
for(int x = 0; x < M; x++)
A[x] = new int[N];

for(int x = 0; x < M; x++)
{
for(int y = 0; y < N; y++)
{
cout << "A["<<x<<"]["<<y<<"] = ";
cin >> A[x][y];
}
}

int count, min, s;
for(int y = 0; y < N; y++)
{
count = 0;
for(int x = 0; x < M; x++)
{
if(A[x][y] > 0) count++;
}
if(y == 0)
{
min = count;
s = 0;
}
else
{
if(count < min)
{
min = count;
s = y;
}
}
}

// для наглядности сначала выведим массив на экран
for(int x = 0; x < M; x++)
{
for(int y = 0; y < N; y++)
{
cout << A[x][y] << '\t';
}
cout << endl;
}

cout << endl << s + 1 << " столбец имеет наименьшое количество положительных элементов." << endl;

if(A != (int**) nullptr)
{
for(int x = 0; x < M; x++)
{
if(A[x] != (int*) nullptr)
{
delete [] A[x];
A[x] = (int*) nullptr;
}
else return 1;
}
delete [] A;
A = (int**) nullptr;
}
return 0;
}
Дмитрий Ефремов
Дмитрий Ефремов
97 447
Лучший ответ