Посчитать сумму отрицательных и нечетных чисел из матрицы
Если в строке 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;
}
Источник: Stack Overflow на русском