C/C++

C++ и программирование

Дана целочисленная квадратная матрица размера N×N. Вычислить сумму
элементов расположенных выше главной диагонали и ниже побочной
диагонали. Найденное значение вывести на экран
#include <iostream>
#include <random>
#include <span>
using namespace std;
void show(span<int> box) {
for (int x : box) cout << x << ' ';
puts("");
}
int main() {
uniform_int_distribution<> uid(1, 5);
mt19937 gen{ random_device()() };
const auto n = 3;
int matrix[n][n]{};
for (auto& row : matrix) for (auto& x : row) x = uid(gen);
for (auto& row : matrix) show(row);
puts("");
auto top = 0;
auto bottom = 0;
auto last = n - 1;
for (auto i = 0; i < n; ++i) {
for (auto j = 0; j < n; ++j) {
if (j > i) top += matrix[i][j];
if (j + i > last) bottom += matrix[i][j];
}
}
cout << "Sum top: " << top << '\n';
cout << "Sum bottom: " << bottom << '\n';
system("pause > nul");
}
Эльмир Шукюров
Эльмир Шукюров
77 642
Лучший ответ
Александр Кабахматенко void show(span box) {
for (int x : box) cout << x << ' ';
puts("");
mt19937 gen { random_device()() } ;
что эта означает
#include < iostream >

using namespace std;

int main()
{
setlocale(0, "");
srand(3);
int n;
cout << "Введите размер массива N: " << endl;
cin >> n;
int summ_up = 0, summ_dn = 0;

int** arr = new int* [n];
for (int i = 0; i < n; i++) arr[i] = new int[n]; //создание 2n динамич массива (удаления в конце не будет из за нецелесообразности)

for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) arr[i][j] = rand() % 101; //заполнение псевдорандомными числами 0..100

for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++) cout << arr[i][j] << "\t"; // выведение массива для контроля
cout << endl;
}

for (int i = 0; i < n-1; i++) // вычисление суммы выше гл. диагонали
for (int j = 1; j < n; j++)
if (j > i) summ_up += arr[i][j];

for (int i = 1; i < n; i++) // вычисление суммы ниже побочной диагонали
for (int j = 1; j < n; j++)
if (j>n-i-1) summ_dn += arr[i][j];

cout << "Сумма чисел выше гл. диагонали = " << summ_up << endl;
cout << "Сумма чисел ниже побочной диагонали = " << summ_dn << endl;

}