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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MRG_Serejka
15 / 15 / 7
Регистрация: 15.08.2013
Сообщений: 177
Завершенные тесты: 2
#1

Тернарный оператор "?" - C++

29.07.2016, 19:08. Просмотров 316. Ответов 5
Метки нет (Все метки)

Добрый Вечер .
Столкнулся с вопросом помогите понять хочу разобраться с ходом ее работы.

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
 
int main()
{
int a;
a=0?a=1:a=2?a=3:a=4?a=5:a=6;
cout << a;
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2016, 19:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Тернарный оператор "?" (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

C2678 бинарный ">>": не найден оператор, принимающий левый операнд типа "std::ostream" - C++
Код: #include &lt;iostream&gt; #include &lt;memory&gt; #include &lt;typeinfo&gt; #include &lt;ctime&gt; #include &lt;windows.h&gt; #include &lt;ostream&gt; ...

бинарный "++": "Counter" не определяет этот оператор или преобразование к типу приемлемо к встроенному - C++
бинарный &quot;++&quot;: &quot;Counter&quot; не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору #include &lt;iostream&gt; ...

Error C2678: бинарный "<<": не найден оператор, принимающий левый операнд типа "std::ifstream" - C++
Собственно, текст ошибки приведен в названии темы. Сам код: #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iomanip&gt; #include...

Error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" - C++
Вот ошибка 1&gt;------ Построение начато: проект: ыпошряоям, Конфигурация: Debug Win32 ------ 1&gt; файл.cpp 1&gt;c:\users\hp\desktop\уроки...

Бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" - C++
Подскажите, пожалуйста, как решить проблему. Хочу перегрузить оператор ввода, но никак не пойму, в чем дело #include&lt;iostream&gt; ...

5
hoggy
6673 / 2859 / 491
Регистрация: 15.11.2014
Сообщений: 6,381
Завершенные тесты: 1
29.07.2016, 19:17 #2
C++
1
a=0?a=1:a=2?a=3:a=4?a=5:a=6;
1.
переменной а присваивается значение ноль.
затем сравнивается с булевым true/false.
поскольку там ноль - попадаем во вторую ветку:

2.
C++
1
a=2?a=3:a=4?a=5:a=6;
переменной а присваивается значение 2.
затем сравнивается с булевым true/false.
поскольку там 2 - попадаем в первую ветку:

3.
C++
1
a=3;
2
MRG_Serejka
15 / 15 / 7
Регистрация: 15.08.2013
Сообщений: 177
Завершенные тесты: 2
29.07.2016, 19:41  [ТС] #3
hoggy, Я понимаю как до тройки доходит, но я не пойму почему решение не дойдет до значения 5?
0
Tuma
60 / 41 / 18
Регистрация: 28.09.2013
Сообщений: 193
29.07.2016, 19:43 #4
MRG_Serejka, потому что в данном случае тернарный оператор относится только к присвоению a=4
C++
1
a=4?a=5:a=6
1
HelicopterK52
680 / 205 / 28
Регистрация: 27.07.2016
Сообщений: 474
Завершенные тесты: 1
29.07.2016, 19:43 #5
Цитата Сообщение от MRG_Serejka Посмотреть сообщение
но я не пойму почему решение не дойдет до значения 5?
потому что всё это находится в "ветке" false
0
MansMI
1277 / 1055 / 291
Регистрация: 08.01.2012
Сообщений: 3,994
29.07.2016, 19:46 #6
C++
1
(a=0?a=1:(a=2?a=3:(a=4?a=5:a=6)));
может так понятнее будет
0
29.07.2016, 19:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2016, 19:46
Привет! Вот еще темы с ответами:

Исправить ошибку:error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" - C++
Скажите пожалуйста, как исправить error C2678: бинарный &quot;&gt;&gt;&quot;: не найден оператор, принимающий левый операнд типа &quot;std::istream&quot; (или...

Error C2679: бинарный "<<": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое - C++
эмулятор работы банкомата Например #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;time.h&gt; #include...

error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::basic_istream<_Elem,_Traits>" - C++
Нужно из файла скачать информацию в объект. Почему у меня не получается? #include &lt;vector&gt; #include &lt;string&gt; #include &lt;iostream&gt; ...

Оператор "delete" и ошибка "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse) Error" - C++
Здравствуйте. Возникла проблема с оператором &quot;delete&quot;. Пользуюсь VisualStudio 2010. Программа компилируется нормально. Все отрабатывает....


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

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

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