Посчитать сумму отрицательных и нечетных чисел из матрицы
Если в строке if (Matrix[i][j] % 2 == 1 && Matrix[i][j] < 0) оставить только 1 любое условие - программа отлично работает, но стоило добавить либо Matrix[i][j] % 2 == 1, либо Matrix[i][j] < 0 - программа говорит, что sum = 0.
Вот сам код:
#include <iostream>
#include <ctime>
#include <cmath>
using namespace std;
void CreateMatrix(int** Matrix) {
for (int i = 0; i < 7; i++) Matrix[i] = new int[7];
}
void FillArray(int** Matrix) {
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 7; j++) {
Matrix[i][j] = 1 + rand() % 9;
if (rand() % 4 == 0) Matrix[i][j] *= -1;
}
}
}
void PrintArray(int** Matrix) {
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 7; j++) {
if (Matrix[i][j] > 0) cout << " ";
cout << Matrix[i][j] << "\t";
}
cout << endl;
}
}
void PrintSum(int** Matrix) {
int sum = 0;
for (int i = 0; i < 7; i++)
for (int j = 0; j < 7; j++)
if (Matrix[i][j] % 2 == 1 && Matrix[i][j] < 0)
sum += abs(Matrix[i][j]);
cout << endl << "Sum of all negative odd numbers: " << sum << endl;
}
int main() {
srand(time(NULL));
int** A = new int* [7];
CreateMatrix(A);
FillArray(A);
PrintArray(A);
PrintSum(A);
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Выведите
cout << (-5 % 2);
Думаю, результат — -1 — вас удивит, правда? :)
Так что исправьте условие просто на
Matrix[i][j] % 2 && Matrix[i][j] < 0
P.S. Кстати, вам надо посчитать сумму таких чисел, или сумму модулей таких чисел?