Форум программистов, компьютерный форум CyberForum.ru

Непросто написанный условный оператор - C++

Восстановить пароль Регистрация
 
Cancion2able
7 / 7 / 0
Регистрация: 08.12.2012
Сообщений: 108
11.01.2014, 10:40     Непросто написанный условный оператор #1
Привет! Есть задача по отображению количеству отрицательных чисел. Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int main()
{
        int f, s, t;
        int n = 0;
 
        cout << "Input three numbers: " << endl;
        cin >> f >> s >> t;
 
        if (f < 0 && s < 0 && t < 0) {
                n = 3;
        }
        if (f < 0 && s < 0 || s < 0 && t < 0 || f < 0 && t < 0) {
                n = 2;
        } else if (f < 0 || s < 0 || t < 0) {
                n = 1;
        } else {
                cout << "You are OK!!!" << endl;
        }
 
        cout << "Amount of negative elements is " << n << endl;
 
        system("PAUSE");
        return 0;
}
Все работает, но если брать за основу материал, по которому я прохожу обучение, подразумевается, что я еще ничего не знаю о логических операциях. А я их использовал. Другого пути не увидел. Есть ли возможность сделать этот код проще, сократить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2014, 10:40     Непросто написанный условный оператор
Посмотрите здесь:

C++ Условный оператор if
Условный оператор. C++
C++ Условный оператор if else
C++ Условный оператор
УСЛОВНЫЙ ОПЕРАТОР (IF) C++
C++ Условный оператор
Условный оператор C++
Условный оператор IF C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
11.01.2014, 10:43     Непросто написанный условный оператор #2
Как вариант, можно и так, но мне кажется, что это еще больше вразрез с материалом...
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    int a = -1, b = 2, c = -3;
 
    int n = (a < 0) + (b < 0) + (c < 0);
    std::cout << n << std::endl;
}
Yandex
Объявления
11.01.2014, 10:43     Непросто написанный условный оператор
Ответ Создать тему
Опции темы

Текущее время: 10:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru