Массивы на C++ , Динамические массивы
Всем привет , хотел сделать то , что вы сейчас видите на рисунке , а получилось наоборот , не понимаю как исправить , подскажите неопытному работяге. Нужно найти сумму чисел , которые находятся в закрашенной области , код написан для зеркальной верней части , а мне нужно для нижней.

#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
cout << "N: ";
int n;
cin >> n;
cout <<endl;
int matrix[n][n];
int sum = 0;
int col_start = 0;////
int col_finish = n - 1;////
for (int row = 0; row < n; row++)
{
for (int col = 0; col < n; col++)
{
matrix[row][col] = rand() % 201 - 100;
cout << setw(4) << matrix[row][col];
if (col_start <= col_finish)////
{
if (col >= col_start && col <= col_finish)////
{///
sum += matrix[row][col];////
}
}
}
col_start++;
col_finish--;
cout << endl;
}
cout << endl << "SUM: " << sum << endl;
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Разверните внешний цикл
for (int row = 0; row < n; row++)
Замените его на
for (int row = n-1; row >= 0; row--)
Только вот вывод матрицы напишите отдельно, а то иначе она будет выводиться кверху ногами :)
Update
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
cout << "N: ";
int n;
cin >> n;
int **m = new int*[n];
for(int i = 0; i < n; ++i)
m[i] = new int[n];
int sum = 0;
int col_start = 0;////
int col_finish = n - 1;////
for (int row = n-1; row >= 0; row--)
{
for (int col = 0; col < n; col++)
{
m[row][col] = rand() % 201 - 100;
if (col_start <= col_finish)////
{
if (col >= col_start && col <= col_finish)////
{///
sum += m[row][col];////
}
}
}
col_start++;
col_finish--;
}
for (int row = 0; row < n; row++)
{
for (int col = 0; col < n; col++)
cout << setw(4) << m[row][col];
cout << endl;
}
cout << endl << "SUM: " << sum << endl;
}