Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 19.02.2023
Сообщений: 44

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

03.04.2023, 01:53. Показов 802. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему этот код вызывает ошибку?

a > 10 ? cout << "a > 10" : a += 10;
Пишет что типо разные типы, но причем тут они вообще?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2023, 01:53
Ответы с готовыми решениями:

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

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

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

6
 Аватар для Наталья8
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,110
03.04.2023, 02:36
Ну вызывает и вызывает. Пиши иначе\

C++
1
2
3
4
5
6
7
8
9
int _tmain(int argc, _TCHAR* argv[])
{
int a = 5;
    if (a > 10)std::cout << "a > 10";
    else a += 10;
    
    a > 10 ? printf( "a > 10") : a += 10;
return 0;
}
Добавлено через 9 минут
Тернарник должен возвращать результат.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int _tmain(int argc, _TCHAR* argv[])
{
int a = 5;
    
    if (a > 10)std::cout << "a > 10";
    else a += 10;
    
int rez = (a > 10) ? a + 5 : a + 10;
 
std::cout << rez << std::endl;
        std::cin.get();
return 0;
}
Скока будет ?
1
И тут вот те нате
322 / 209 / 117
Регистрация: 12.07.2016
Сообщений: 555
03.04.2023, 03:13
Лучший ответ Сообщение было отмечено senv1s как решение

Решение

Цитата Сообщение от senv1s Посмотреть сообщение
Почему этот код вызывает ошибку?
a > 10 ? cout << "a > 10" : a += 10;
Потому что типы в тернарном операторе должны быть одинаковыми или приводимыми к одному общему типу, а в данном выражении типы basic_ostream и int.
Вполне могут быть ситуации, когда общего типа нет. Например у
Code
1
2
struct C{};
struct D{};
общего типа нет, и следующий фрагмент вообще не скомпилируется
Code
1
(true ? C() : D());
Взято отсюда
1
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
03.04.2023, 03:55
Цитата Сообщение от senv1s Посмотреть сообщение
Почему этот код вызывает ошибку?
Потому что тернарный оператор не то же самое что и конструкция if else .
1
фрилансер
 Аватар для Алексей1153
6472 / 5687 / 1131
Регистрация: 11.10.2019
Сообщений: 15,167
03.04.2023, 11:11
senv1s, но если сильно хочется, то так

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main()
{
    int a=11;
    
    a > 10 ? std::cout << "a > 10",0 : a += 10;
 
    return 0;
}
1
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
03.04.2023, 14:31
Цитата Сообщение от Алексей1153 Посмотреть сообщение
если сильно хочется
C++
1
    a > 10 ? void(std::cout << "a > 10") : void(a += 10);
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
03.04.2023, 17:57
Цитата Сообщение от senv1s Посмотреть сообщение
Пишет что типо разные типы, но причем тут они вообще?
потому что тернарный оператор предназначен для присваивания одного из двух значений (обычно) какой-то переменной, а не просто для условного исполнения двух веток кода. Для последнего есть if
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.04.2023, 17:57
Помогаю со студенческими работами здесь

Тернарный оператор
Помогите решить дз. Спасибо 1. Напишите программу, которая считывает, введенные пользователем 2 числа, определяет и выводит на экран,...

Тернарный оператор if
так записать нельзя? void chek(comp* top) { comp* tmp = top, *tmp1, *last; last = chekmines(top); if (last == NULL) { ...

Тернарный оператор
Как расшифровать int j=(i%2) ? 1 ; 0;?

Тернарный оператор
Здравствуйте. Наткнулся на решение задачи по рекурсии и вот не могу понять, какая операция выполняется в 34 строке. Подскажите пожалуйста. ...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru