Всем доброго времени суток! Есть задание: пользователь вводит с клавиатуры числа до тех пор, пока не введет 0. Найти и вывести на экран: 1) Сумму отрицательных чисел 2) произведение положительных 3) сумму нечетных чисел. Вот мой код: #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "Russian"); cout << "Введите число: "; int x; int y = 0; int z = 1; int a = 0; cin >> x; while (x != 0) { if (x < 0) { while (x < 0) { y = y + x; cout << "Введите число или введите 0, чтобы выйти: "; cin >> x; } } else if (x > 0) { while (x > 0) { z = z * x; cout << "Введите число или введите 0, чтобы выйти: "; cin >> x; } } else if (x%2 == 0) { while (x % 2 == 0) { a = a + x; cout << "Введите число или введите 0, чтобы выйти: "; cin >> x; } } } cout << y << endl; cout << z << endl; cout << a << endl; return 0; Первые 2 условия выполняются, но не могу понять, как сделать так, чтобы 3-ий результат тоже выводился.
если тебе надо сумму нечетных чисел, то зачем ты проверяешь на четное число? можно же проверять на нечетное x%2 != 0
нахера тебе столько while'ов? #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "Russian"); int a = 0; int b = 1; int c = 0; int x; cout << "Введите число: "; cin >> x; while (x != 0) { if (x < 0) a = a + x; if (x > 0) b = b * x; if (x % 2 != 0) c = c + x; cout << "Введите число или введите 0, чтобы выйти: "; cin >> x; } cout << a << endl; cout << b << endl; cout << c << endl; return 0; } C #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "Russian"); int a = 0; int b = 1; int c = 0; int x; cout << "Введите число: "; cin >> x; while (x != 0) { if (x < 0) a = a + x; if (x > 0) b = b * x; if (x % 2 != 0) c = c + x; cout << "Введите число или введите 0, чтобы выйти: "; cin >> x; } cout << a << endl; cout << b << endl; cout << c << endl; return 0; } Или если с C++ выебонами то можно чуть короче if (x < 0) a += x; if (x > 0) b *= x; if (x % 2) c += x; C if (x < 0) a += x; if (x > 0) b *= x; if (x % 2) c += x;