contrlc
Мой вариант #include <iostream> #include <vector> using namespace std; const unsigned N = 4;
int main() { vector<vector<int>> matr(N, vector<int>(N, 5)); unsigned sum = 0; double mul = 1.0; for (unsigned i = 0, j = 0; i < N; ++i) { if (j < N) sum += matr[i][j++]; for (unsigned u = 0; u < N; ++u) if (matr[i][u] < 0) mul *= matr[i][u]; } cout << sum << endl; mul != 1 ? cout << mul : cout << "There are no negative numbers in the matrix" << endl; return 0; } След (сумма эл. главной диагонали) у меня выводит и произвидение отрицательных чисел.
contrlc
Тут же нужно было вычислить след и произведение отрицательных элементов?
clinteastwood2
Блин об отрицательных элементах забыл, ненавижу когда задание кидают картинкой, тогда вроде запомнил задание, а из головы в итоге вылетело..
Answers & Comments
#include <iostream>
#include <vector>
using namespace std;
const unsigned N = 4;
int main()
{
vector<vector<int>> matr(N, vector<int>(N, 5));
unsigned sum = 0;
double mul = 1.0;
for (unsigned i = 0, j = 0; i < N; ++i) {
if (j < N) sum += matr[i][j++];
for (unsigned u = 0; u < N; ++u)
if (matr[i][u] < 0) mul *= matr[i][u];
}
cout << sum << endl;
mul != 1 ? cout << mul : cout << "There are no negative numbers in the matrix" << endl;
return 0;
}
След (сумма эл. главной диагонали) у меня выводит и произвидение отрицательных чисел.
Verified answer
#include <iostream>using namespace std;
int main()
{
setlocale(LC_ALL,"rus");
bool flag = true;
float matrix[4][4];
float trace, mult;
mult = 1;
cout << "Введите матрицу 4x4:\n";
for (int i = 0; i < 4; i++)
for(int j = 0; j < 4; j++)
{
cin >> matrix[i][j];
if(matrix[i][j] < 0)
{
mult *= matrix[i][j];
flag = false;
}
if(i == j) trace += matrix[i][j];
}
if(flag) cout << "След матрицы = " << trace << endl << "В матрице нет отрицательных цисел";
else cout << "След матрицы = " << trace << endl << "Произведение отрицательных чисел матрицы = " << mult;
return 0;
}