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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Fobos315
2 / 2 / 0
Регистрация: 25.04.2014
Сообщений: 68
#1

Простая задачка про тернарный оператор - C++

20.07.2014, 21:54. Просмотров 1462. Ответов 20
Метки нет (Все метки)

Переписал с учебника простую задачку, однако на 10 и 12 строке показывает ошибки. Что тут не так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    double p,p1,P,q;
    int n;
    cout<<"p= ";
    cin>>p;
    (p<0||p>1)?(cout<<"Wrong value!"<<endl,exit(0)):cout<<"p1 = ";
    cin>>p1;
    (p1<0||p1>1)?(cout<<"Wrong value!"<<endl,exit(0)):cout<<"n= ";
    cin>>n;
    q=(1-p)*(1-p1);
    P=p*p1*(1-pow(q,n))/(1-q);
    cout<<"P= "<<P<<endl;
    system("PAUSE");
    return 0;   
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2014, 21:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Простая задачка про тернарный оператор (C++):

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

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

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

Засунуть в тернарный оператор - C++
Помогите засунуть выражение if ( (i &lt; 0 || j &lt; 0) || (i &gt;= ROW || j &gt;= COL) || (i == oi &amp;&amp; j == oj)) continue; else if (arr)...

Шахматы(заменить тернарный оператор) на if else - C++
#include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; void main() { int h, w, i, j; cout &lt;&lt; &quot;Введите...

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

20
kylroma
Одессит
204 / 75 / 23
Регистрация: 30.12.2013
Сообщений: 277
Записей в блоге: 1
Завершенные тесты: 2
20.07.2014, 22:01 #2
Та вроде нет ошибок. У меня компилируется.
0
Fobos315
2 / 2 / 0
Регистрация: 25.04.2014
Сообщений: 68
20.07.2014, 22:05  [ТС] #3
Ну я вроде как тоже не вижу, а Dev C++ видит)
0
Supernatural
604 / 203 / 30
Регистрация: 22.11.2010
Сообщений: 1,585
Записей в блоге: 1
20.07.2014, 22:08 #4
а что за ошибки? компилятор хоть пишет, что ему не нравится в коде?
0
kylroma
Одессит
204 / 75 / 23
Регистрация: 30.12.2013
Сообщений: 277
Записей в блоге: 1
Завершенные тесты: 2
20.07.2014, 22:08 #5
Да, у меня тоже dev c++ видит. И CodeBlocks видит. Но если использовать, компилятор в CodeBlocks от MS visual c++, то всё нормально.
0
Fobos315
2 / 2 / 0
Регистрация: 25.04.2014
Сообщений: 68
20.07.2014, 22:10  [ТС] #6
10 56 C:\Users\flagship\Desktop\Test20.cpp [Error] second operand to the conditional operator is of type 'void', but the third operand is neither a throw-expression nor of type 'void'
и 12 тоже самое
0
Supernatural
604 / 203 / 30
Регистрация: 22.11.2010
Сообщений: 1,585
Записей в блоге: 1
20.07.2014, 22:18 #7
C++
1
(p<0||p>1)?(cout<<"Wrong value!":cout<<"p1 = ";
попробуй?
0
Fobos315
2 / 2 / 0
Регистрация: 25.04.2014
Сообщений: 68
20.07.2014, 22:33  [ТС] #8
так работает, только вы скобку забыли. Но теперь из программы не выходит если условие не выполнено.
0
Supernatural
604 / 203 / 30
Регистрация: 22.11.2010
Сообщений: 1,585
Записей в блоге: 1
20.07.2014, 23:18 #9
ах да, торопился выйти)

Добавлено через 7 минут
посмотрел в книге, образец условной компиляции выглядит: переменная=операнд1?операнд2:операнд3, как я понимаю тут нужны строго значения, но у тебя следуют последовательность операторов
0
Fobos315
2 / 2 / 0
Регистрация: 25.04.2014
Сообщений: 68
20.07.2014, 23:26  [ТС] #10
Supernatural у некоторых почему то работает. Не думаю что в учебнике в таком простом примере могли что то перепутать. Причем с объяснениями.
0
Supernatural
604 / 203 / 30
Регистрация: 22.11.2010
Сообщений: 1,585
Записей в блоге: 1
20.07.2014, 23:39 #11
наверное дело в компиляторе
0
Fobos315
2 / 2 / 0
Регистрация: 25.04.2014
Сообщений: 68
20.07.2014, 23:46  [ТС] #12
cut
Вот нашел что то похожее на мою проблему, только не понял к какому там выводу пришли. В частности что значит это and if i replace the last 0 with throw 0, it will compile successfully. С переводом понятно, сам смысл не понял))
0
Supernatural
604 / 203 / 30
Регистрация: 22.11.2010
Сообщений: 1,585
Записей в блоге: 1
21.07.2014, 00:44 #13
смена 0 со сбросом 0, что это могло значить....)))
0
IIARTEMII
20 / 20 / 3
Регистрация: 14.06.2012
Сообщений: 95
Завершенные тесты: 1
21.07.2014, 02:02 #14
Цитата Сообщение от Fobos315 Посмотреть сообщение
second operand to the conditional operator is of type 'void'
Оператор "запятая" возвращает правый операнд. Тернарный оператор возвращает результат, зависящий от первого операнда. При true, тернарный оператор возвращает exit(...), а exit возвращает void - вы возвращаете void и выскакивает ошибка. Попробуйте поменять операнды оператора "запятая" местами и отпишитесь
1
Fobos315
2 / 2 / 0
Регистрация: 25.04.2014
Сообщений: 68
21.07.2014, 12:49  [ТС] #15
IIARTEMII Вы были совершенно правы!
0
21.07.2014, 12:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2014, 12:49
Привет! Вот еще темы с ответами:

Как работает тернарный оператор - C++
Здравствуйте. Объясните, пожалуйста, что значит эта строка color = (color == 'W') ? 'B' : 'W';

Тернарный оператор - найти ошибку в коде - C++
Не пойму почему выдает ошибку, вроде программы самые простые и ошибиться то негде: #include&lt;iostream&gt; using namespace std; int main()...

Является ли тернарный оператор оператором сравнения? - C++
Является ли тернарный оператор оператором сравнения? Подскажите пожалуста

Тернарный оператор и операторы безусловного перехода - C++
Здравствуйте, может кто-нибудь объяснить, почему не компилируется оператор ?, если в одной из последующих частей стоит break, return,...


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

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

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