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

Тернарный оператор - найти ошибку в коде - C++

Восстановить пароль Регистрация
 
Senarist
32 / 32 / 10
Регистрация: 14.03.2014
Сообщений: 507
11.07.2014, 19:22     Тернарный оператор - найти ошибку в коде #1
Не пойму почему выдает ошибку, вроде программы самые простые и ошибиться то негде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
using namespace std;
int main()
{
    double a,b;
    bool state;
    cout<<"a= ";
    cin>>a;
    cout<<"b= ";
    cin>>b;
    cout<<"x is: ";
    state=(a!=0);
    state?(cout<<b/a<<endl,exit(0)):state=(a==0)&&(b==0);
    cout<<(state?"any number!":"no result!")<<endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2014, 19:22     Тернарный оператор - найти ошибку в коде
Посмотрите здесь:

C++ Засунуть в тернарный оператор
Тернарный оператор vs if/else C++
C++ Шахматы(заменить тернарный оператор) на if else
C++ Альтернатива if (.) {.} (тернарный оператор)
Тернарный оператор: возврат значения C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 433
11.07.2014, 19:47     Тернарный оператор - найти ошибку в коде #2
в VS все норм.

Добавлено через 35 секунд
Или ошибка логическая?
Senarist
32 / 32 / 10
Регистрация: 14.03.2014
Сообщений: 507
11.07.2014, 19:49  [ТС]     Тернарный оператор - найти ошибку в коде #3
13 C:\Users\flagship\Desktop\Untitled5.cpp `((void)(+(&std::cout)->std::basic_ostream<_CharT, _Traits>::operator<< [with _CharT = char, _Traits = std::char_traits<char>](#`rdiv_expr' not supported by dump_expr#<expression error>))->std::basic_ostream<_CharT, _Traits>::operator<< [with _CharT = char, _Traits = std::char_traits<char>](std::endl [with _CharT = char, _Traits = std::char_traits<char>]), exit(0))' has type `void' and is not a throw-expression
Вот что то такое.
BF_
3 / 3 / 1
Регистрация: 07.09.2013
Сообщений: 68
11.07.2014, 20:23     Тернарный оператор - найти ошибку в коде #4
Цитата Сообщение от Senarist Посмотреть сообщение
(cout<<b/a<<endl,exit(0))
Так нельзя.
Либо создай метод, либо используй конструкцию if else .
Senarist
32 / 32 / 10
Регистрация: 14.03.2014
Сообщений: 507
11.07.2014, 20:28  [ТС]     Тернарный оператор - найти ошибку в коде #5
Данный пример из учебника, тема тернарный оператор, поэтому без ифов и элсов
BF_
3 / 3 / 1
Регистрация: 07.09.2013
Сообщений: 68
11.07.2014, 20:39     Тернарный оператор - найти ошибку в коде #6
У тернарного оператора возвращаемые значения должны быть одного типа.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2014, 23:36     Тернарный оператор - найти ошибку в коде
Еще ссылки по теме:

Тернарный оператор и множество ошибок в коде C++
C++ Является ли тернарный оператор оператором сравнения?
C++ Как работает тернарный оператор

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

Или воспользуйтесь поиском по форуму:
Qwertiy
817 / 625 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
11.07.2014, 23:36     Тернарный оператор - найти ошибку в коде #7
Цитата Сообщение от Senarist Посмотреть сообщение
state?(cout<<b/a<<endl,exit(0)):state=(a==0)&&(b==0);
state?(cout<<b/a<<endl,exit(0),0):state=(a==0)&&(b==0);

Добавлено через 36 секунд
Нельзя пихать void в качестве значения.
Yandex
Объявления
11.07.2014, 23:36     Тернарный оператор - найти ошибку в коде
Ответ Создать тему
Опции темы

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