C/C++

Помогите с задачкой по C++ пожалуйста

Заполнить двумерный массив случайными числами от 10 до 100. Посчитать сумму элементов отдельно в каждой строке и определить номер строки, в которой эта сумма максимальна.
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main()
{
srand(time(nullptr));
rand();
int n,m;
do
{
cout << "n: ";
cin >> n;
}while(n < 1);
do
{
cout << "m: ";
cin >> m;
}while(m < 1);
int ** A = new int*[n];
for(int x = 0; x < n; x++)
A[x] = new int[m];
int sum,max,i;
for(int x = 0; x < n; x++)
{
sum = 0;
for(int y = 0; y < m; y++)
{
A[x][y] = rand() % 91 + 10;
cout << A[x][y] << '\t';
sum += A[x][y];
}
cout << "sum = " << sum << endl;
if(x == 0)
{
max = sum;
i = x;
}
else if(sum > max)
{
max = sum;
i = x;
}
}
cout << endl << "Номер строки " << i + 1 << '.' << endl;

if(A != (int**) nullptr)
{
for(int x = 0; x < n; x++)
{
if(A[x] != (int*) nullptr)
{
delete [] A[x];
A[x] = (int*) nullptr;
}
}
delete [] A;
A = (int**) nullptr;
}

return 0;
}
Aleksei Shkretov
Aleksei Shkretov
84 264
Лучший ответ
#include "iostream"
#include "ctime"
#include "cstdlib"
#include "iomanip"
#include "algorithm"
using namespace std;
int main(){
int n,m,k; cout<<"n m: "; cin>>n>>m; srand(time(NULL));
int **a=new int*[n]; for(size_t i=0;i< n;i++)a[i]=new int[m];
for(size_t i=0;i< n;i++){for(size_t j=0;j< m;j++)
cout<<setw(5)<<(a[i][j]=rand()%91+10); cout<< endl;}
int *b=new int[n],*c;
for(size_t i=0;i< n;i++)b[i]=accumulate(a[i],a[i]+m,0);
c=max_element(b,b+n); cout<<"maxsum="<<*c<<" in line "<<c-b+1<< endl;
for(size_t i=0;i< n;i++)delete []a[i]; delete []a;}