Дана квадратная матрица целых чисел. определить модуль произведения отрицательных чисел, которые находятся в нижней треугольной области матрицы: под главной и под побочной диагоналями.
В C++: #include <iostream> #include <ctime> #include <iomanip> int main() { using namespace std;
//размерность матрицы const int N = 5; int matrix[N][N]; srand(time(0)); int i, j;
//как-нибудь заполняем матрицу for (i = 0; i < N; i++) for (j = 0; j < N; j++) matrix[i][j] = rand() % (N * N + 1) - (N * N / 2);
//вывод исходной матрицы на экран for (i = 0; i < N; i++) { for (j = 0; j < N; j++) cout << setw(4) << matrix[i][j]; cout << endl; }
//проверка, есть ли вообще числа, чтобы умножать int p = 0; for (i = 0; i < N; i++) for (j = 0; j < N; j++) if (i > j && i > N - j - 1 && matrix[i][j] < 0) { p = 1; break; }
//подсчёт требуемого произведения for (i = 0; i < N; i++) for (j = 0; j < N; j++) if (i > j && i > N - j - 1 && matrix[i][j] < 0) p = p * matrix[i][j];
//нахождение модуля произведения if (p < 0) p = -p;
//вывод этого значения на экран cout << "Multiplication: " << p << endl; return 0; }
#include <iostream>
#include <ctime>
#include <iomanip>
int main()
{
using namespace std;
//размерность матрицы
const int N = 5;
int matrix[N][N];
srand(time(0));
int i, j;
//как-нибудь заполняем матрицу
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
matrix[i][j] = rand() % (N * N + 1) - (N * N / 2);
//вывод исходной матрицы на экран
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
cout << setw(4) << matrix[i][j];
cout << endl;
}
//проверка, есть ли вообще числа, чтобы умножать
int p = 0;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
if (i > j && i > N - j - 1 && matrix[i][j] < 0)
{
p = 1;
break;
}
//подсчёт требуемого произведения
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
if (i > j && i > N - j - 1 && matrix[i][j] < 0)
p = p * matrix[i][j];
//нахождение модуля произведения
if (p < 0)
p = -p;
//вывод этого значения на экран
cout << "Multiplication: " << p << endl;
return 0;
}