ПОМОГИТЕ СРОЧНО С ИНФОРМАТИКОЙ, ЯЗЫК С++ ДАЮ50 БАЛЛОВ
(Условие) У згенерованому випадковим чином двовимірному масиві a(10x10)
(a[10][10]) з цілих чисел ([-20*N, 30*N] - N - номер за списком) виконати дії:
Завдання 1.У матриці знайти суму парних елементів, що лежать вище головної
діагоналі. Якщо вона ділиться на 3, обнулити побічну діагональ.
Завдання 2.Знайти добутки діагоналей квадратної матриці. Відсортувати перший рядок за зростанням.
Ответы
#include <iostream>
#include <random>
using namespace std;
const int N = 10;
int main()
{
// Создаем двухмерный массив со случайными целыми числами
int a[N][N];
mt19937 rnd(time(nullptr));
uniform_int_distribution<int> dist(-20 * N, 30 * N);
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
a[i][j] = dist(rnd);
// Решаем задачу 1
int sum = 0;
for (int i = 0; i < N; i++)
for (int j = i + 1; j < N; j++)
if (a[i][j] % 2 == 0)
sum += a[i][j];
if (sum % 3 == 0)
for (int i = 0; i < N; i++)
a[i][N - i - 1] = 0;
// Решаем задачу 2
int main_diag_prod = 1, off_diag_prod = 1;
for (int i = 0; i < N; i++)
{
main_diag_prod *= a[i][i];
off_diag_prod *= a[i][N - i - 1];
}
for (int i = 0; i < N - 1; i++)
for (int j = i + 1; j < N; j++)
if (a[i][j] > a[i + 1][j])
swap(a[i][j], a[i + 1][j]);
// Выводим матрицу и результаты вычислений на экран
cout << "Matrix:" << endl;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
cout << a[i][j] << " ";
cout << endl;
}
cout << "Main diagonal product: " << main_diag_prod << endl;
cout << "Off diagonal product: " << off_diag_prod << endl;
return 0;
}
В этом коде используется генератор случайных чисел `mt19937` из заголовочного файла `random`, который инициализируется текущим временем, а также равномерное распределение целых чисел `uniform_int_