Другие языки программирования и технологии

С++ Полностью напишите прогу!

Задана квадратная матрица A размером NxN (N<=10), состоящая из действительных элементов. Найти сумму и произведение всех ее отрицательных элементов. С++
Oleg Sizij
Oleg Sizij
120
#include <iostream>
#include <numeric>
#include <random>
#include <iomanip>
using namespace std;
void rand(double* box, const int n) {
uniform_real_distribution<> urd(-9, 9);
mt19937_64 gen{ random_device()() };
for (auto i = 0; i < n; ++i) box[i] = urd(gen);
}
void show(const double* box, const int n) {
for (auto i = 0; i < n; ++i) cout << fixed << setprecision(3) << setw(8) << box[i];
cout.put('\n');
}
double sum(double* b, double* e) {
auto lambda = [](double s, double x) { return x < 0? s + x : s; };
return accumulate(b, e, .0, lambda);
}
double mult(double* b, double* e) {
auto lambda = [](double m, double x) { return x < 0? m * x : m; };
return accumulate(b, e, 1., lambda);
}
int main() {
const auto x = 10;
double matrix[x][x];
int n;
cout << "n: ";
cin >> n;
if (n > 10) exit(0);
for (auto i = 0; i < n; ++i) rand(matrix[i], n);
for (auto i = 0; i < n; ++i) show(matrix[i], n);
cout.put('\n');
auto s = .0;
for (auto i = 0; i < n; ++i) s += sum(matrix[i], matrix[i] + n);
cout << "sum: " << fixed << setprecision(3) << s << '\n';
auto m = 1.;
for (auto i = 0; i < n; ++i) m *= mult(matrix[i], matrix[i] + n);
cout << "mult: " << fixed << setprecision(3) << m << '\n';
system("pause");
}
Виталий Усачёв
Виталий Усачёв
92 720
Лучший ответ