C/C++
Помогите решить задачу на С++
Найти сумму элементов квадратной матрицы, находящихся по периметру этой матрицы и сумму элементов на ее диагоналях. Если первая сумма больше второй, то каждый отрицательный элемент заменить модулем этого же элемента.
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
int N;
do
{
cout << "Введите размер матрицы: ";
cin >> N;
}while(N<=0);
int ** A = new int *[N];
for(int x = 0; x < N; x++) A[x] = new int[N];
int sump = 0, sumd = 0;
for(int x = 0; x < N; x++)
{
for(int y = 0; y < N; y++)
{
A[x][y] = rand() % 21 - 10;
cout << A[x][y] << '\t';
if(x == 0 || x == N - 1) sump += A[x][y];
else if(y == 0 || y == N - 1) sump += A[x][y];
if(x == y) sumd += A[x][y];
else if(x == N - 1 - y) sumd += A[x][y];
}
cout << endl;
}
cout << endl;
cout << "Сумма по периметру равна " << sump << '.' << endl;
cout << "Сумма по диагоналям равна " << sumd << '.' << endl;
if(sump > sumd)
{
cout << endl;
for(int x = 0; x < N; x++)
{
for(int y = 0; y < N; y++)
{
if(A[x][y] < 0) A[x][y] *= -1;
cout << A[x][y] << '\t';
}
cout << endl;
}
}
if(A == NULL) return 1;
else
{
for(int x = 0; x < N; x++)
{
if(A[x] == NULL) return 1;
else
{
delete [] A[x];
A[x] = NULL;
}
}
delete [] A;
A = NULL;
}
return 0;
}
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
int N;
do
{
cout << "Введите размер матрицы: ";
cin >> N;
}while(N<=0);
int ** A = new int *[N];
for(int x = 0; x < N; x++) A[x] = new int[N];
int sump = 0, sumd = 0;
for(int x = 0; x < N; x++)
{
for(int y = 0; y < N; y++)
{
A[x][y] = rand() % 21 - 10;
cout << A[x][y] << '\t';
if(x == 0 || x == N - 1) sump += A[x][y];
else if(y == 0 || y == N - 1) sump += A[x][y];
if(x == y) sumd += A[x][y];
else if(x == N - 1 - y) sumd += A[x][y];
}
cout << endl;
}
cout << endl;
cout << "Сумма по периметру равна " << sump << '.' << endl;
cout << "Сумма по диагоналям равна " << sumd << '.' << endl;
if(sump > sumd)
{
cout << endl;
for(int x = 0; x < N; x++)
{
for(int y = 0; y < N; y++)
{
if(A[x][y] < 0) A[x][y] *= -1;
cout << A[x][y] << '\t';
}
cout << endl;
}
}
if(A == NULL) return 1;
else
{
for(int x = 0; x < N; x++)
{
if(A[x] == NULL) return 1;
else
{
delete [] A[x];
A[x] = NULL;
}
}
delete [] A;
A = NULL;
}
return 0;
}
Похожие вопросы
- Помогите решить задачу по программированию на C++
- Помогите решить задачу по C++!
- Помогите решить задачу по программированию
- Помогите решить задачу пожалуйста, в C++
- Помогите решить задачу на c++
- Помогите решить задачу на С++ (мне не совсем ясен смысл задания)
- Помогите решить задачу на С++, используя статические массивы
- Товарищи программисты,помогите решить задачу для 1 курса .
- Помогите решить задачу в С++
- Помогите решить задачу на С++