1 / 1 / 0
Регистрация: 15.08.2019
Сообщений: 23
1

тернарный оператор

20.08.2019, 23:38. Показов 1247. Ответов 3
Метки нет (Все метки)

объясните понятным языком что это такое в с++
и пояснение почему так //r=большее число из 2х значений
#define maximum(x, y, r) int aa=x; int bb=y; r = ((aa) > (bb) ? (aa) : (bb))
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2019, 23:38
Ответы с готовыми решениями:

Тернарный оператор vs if/else
Зачем? Ведь, так элегантнее. Начало https://www.cyberforum.ru/cpp-beginners/thread718192.html

Тернарный оператор
Добрый день, как доказать, что нету тенарного оператора ? Я как понимаю, есть только тенарная...

Альтернатива if (.) {.} (тернарный оператор)
блин запамятовал как это делается пишут вместо стандартной формы что то типа y < x : x = m...

Тернарный оператор и наследование
Добрый день! Почему не компилируется этот код: class A{ }; class B :public A { }; class...

3
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
21.08.2019, 00:00 2
Лучший ответ Сообщение было отмечено bino47 как решение

Решение

C++
1
*condition* ? *if true* : *if false*
Это тернарный оператор. Он используется для краткости, как небольшой блок ifelse.
Ваш код берет два значения для сравнения (a и b), а третий аргумент для результата. Вычисляет наибольшие число из двух.

Тернарный оператор выполняет работу аналогичную этой:
C++
1
2
3
4
5
6
7
int value1 = 2, value2 = 10
int maxValue;
 
if(value1 > value2)
  maxValue = value1;
else
  maxValue = value2;
p.s. учтите, что ваш код использует макросы, использует наихудшим образом, лучше напишите функцию
1
1 / 1 / 0
Регистрация: 15.08.2019
Сообщений: 23
21.08.2019, 00:07  [ТС] 3
Прочему наихудшим способом?
0
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
21.08.2019, 00:17 4
Цитата Сообщение от bino47 Посмотреть сообщение
Прочему наихудшим способом?
Объявляются временные переменные, которые могут пересечься с др., компилятор будет ругаться. Непонятно в принципе зачем это было сделано. К тому же это может повлечь др. баги, если использовать выражения при передаче аргументов. Смысл полностью отсутствует. Если не хотите использовать "голый" тернарник с комментариями, то в библеотеке algorithm есть функция специально для сравнения двух переменных - max
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.08.2019, 00:17

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вложенный тернарный оператор
Здравствуйте! Нужно вывести кол-во корней квадратного уравнения в зависимости от дискриминанта,...

Засунуть в тернарный оператор
Помогите засунуть выражение if ( (i < 0 || j < 0) || (i >= ROW || j >= COL) || (i == oi && j ==...

Тернарный оператор: возврат значения
Приветствую. При компиляции ниже приведенного кода bool MyFunc() { bool flag = false; //...

Шахматы(заменить тернарный оператор) на if else
#include <iostream> #include <Windows.h> using namespace std; void main() { int h, w, i,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.