Я просто изучаю программирование на С ++, и моя проблема заключается в том, что я пытаюсь сравнить несколько переменных и не работает. Это то, что я набрал: if (a > b > c)
.Использование реляционных операторов в C++
1
A
ответ
4
Это не работает, как это, как первое выражение a > b
оценивает в булево значение, которое преобразуется (из-за сравнения с c
) либо 0
или 1
, в зависимости от его истинного значения. Затем вы пытаетесь сравнить его с c
, который не то, что вы хотите. Использовать
if ((a > b) && (b > c))
вместо этого. Таким образом вы вычисляете логический AND
двух логических элементов, и если оба они равны true
, то математическое утверждение a > b > c
истинно (по транзитивности).
Если вы скомпилируете все предупреждения, компилятор (вероятно) предупредит вас. По крайней мере, г ++ говорит:
предупреждения: сравнения, как 'X < = Y < = Z' не имеют их математический смысл [-Wparentheses]
3
Вы должны отделить оба условия через И не требуется (& &) Оператор
if ((a>b) && (b > c)){
//code
}
Смежные вопросы
- 1. Использование реляционных операторов в подзапросах
- 2. Использование реляционных операторов при чтении файла из CMD
- 3. Правильный способ перегрузки двоичных реляционных операторов в C++
- 4. Использование операторов выводов - C
- 5. Использование равных операторов в C#
- 6. Цепочка реляционных операторов дает неправильный результат
- 7. Оптимизировать список реляционных операторов до минимального набора
- 8. C# Использование операторов Select Linq?
- 9. Сравнение дат с использованием реляционных операторов в большом запросе google
- 10. Использование `this` в операторов
- 11. Использование нескольких операторов if else в C++
- 12. Использование операторов getopt() и switch в C
- 13. Использование операторов if с строками в C++
- 14. Отображение реляционных объектов C#
- 15. Использование post increment в реляционных операторах
- 16. Использование операторов в списках
- 17. Использование случайных операторов
- 18. Использование побитовых операторов
- 19. C++: «Наблюдать» использование операторов «new», «delete»
- 20. Использование символов, считанных scanf() как операторов C
- 21. Использование операторов Switch в Javascript
- 22. Перегрузка операторов в C++
- 23. Использование перегруженных операторов в разы
- 24. реляционных баз данных Исчисление
- 25. перегрузка операторов "+" и "++" в C#
- 26. Java: Правильное использование условных операторов
- 27. использование триггеров для хранения истории реляционных таблиц
- 28. Использование LINQ для поиска реляционных баз данных
- 29. Использование операторов «и» в if
- 30. Использование операторов в строках JavaScript
скобки здесь, как подсказывает ответ. Это не значит, что оставлять их - плохая идея. – chris
Я хочу сказать, что вам нужно отделить оба теста состояния через AND или OR – Nakib
@chris, это определенно лучше, так как в противном случае большинство из нас должно взглянуть на http://en.cppreference.com/w/cpp/language/ operator_precedence – vsoftco