Загрузка...

Помощь в программе

Тема в разделе C/C++ создана пользователем Sh3l3st 13 окт 2023. 135 просмотров

  1. Sh3l3st
    Sh3l3st Автор темы 13 окт 2023 Зачем покупать уник, если можно купить пиво? 651 14 дек 2021
    Всем доброго времени суток! Есть задание: пользователь вводит с клавиатуры числа до тех пор, пока не введет 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-ий результат тоже выводился.
     
  2. 777Shane
    777Shane 13 окт 2023 1014 20 дек 2020
    если тебе надо сумму нечетных чисел, то зачем ты проверяешь на четное число? можно же проверять на нечетное x%2 != 0
     
    1. Sh3l3st Автор темы
      777Shane, да я только начал учиться и туплю иногда)
  3. vtlstolyarov
    vtlstolyarov 13 окт 2023 468 8 янв 2022
    нахера тебе столько while'ов?

    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++ выебонами то можно чуть короче
    C
    if (x < 0) a += x;
    if (x > 0) b *= x;
    if (x % 2) c += x;
     
    1. Sh3l3st Автор темы
Загрузка...
Top