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

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

Войти
Регистрация
Восстановить пароль
 
Fleurisse
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 6
#1

Выдаёт ошибку - C++

20.09.2013, 14:19. Просмотров 333. Ответов 7
Метки нет (Все метки)

Разбираю примеры простеньких задачек в самоучителе по С++. При введение листинга одной из таких программ в компилятор столкнулась с ошибкой в строчке:
C++
1
(p<0||p>1)?(cout<<"Wrong value!"<<endl,exit(0)):cout<<"p1 = ";
Не понимаю, в чём проблема!

Вот сама программа целиком:

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

выдаёт ошибку в составленной программе выдаёт ошибку - C++
Составить программу, которая находит максимальное значение среди элементов линейной таблицы Y, состоящий из N действительных чисел, имеющих...

При решении программа выдаёт значение функции, равное 0 или выдаёт ошибку. Что не так? - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; using namespace std; long Fact(short m)// функция вычисления факториала ...

Выдаёт ошибку - C++
Данный код работает - считывает кс-грамматику из файла, если файл input.txt содержит S aAB E A aA bB B ACb b C A bA cC Если же...

Выдаёт ошибку - C++
// 777.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; int _tmain(int argc, _TCHAR* argv) {...

Выдаёт ошибку... - C++
Строчка 32. #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; using namespace std; bool prime(int...

Выдаёт ошибку - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; const n=3; struct marsh { int begl,endl,nomer; } s Void main () { int...

7
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
20.09.2013, 14:30 #2
Если хочется заморочиться с тернарным оператором, то пишите так:
C++
1
(p<0||p>1)?(void)(cout<<"Wrong value!"<<endl,exit(0)):(void)(cout<<"p1 = ");
А вообще используйте лучше if.
2
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.09.2013, 16:31 #3
Цитата Сообщение от Fleurisse Посмотреть сообщение
компилятор столкнулась с ошибкой в строчке:
Что пишет?
0
Fyret
185 / 171 / 13
Регистрация: 30.07.2013
Сообщений: 359
20.09.2013, 16:43 #4
Обе ветки тернарного оператора должны возвращать значения одного типа. А у Вас в одному случае void, а в другом std::ostream&
1
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
20.09.2013, 16:56 #5
Цитата Сообщение от Fleurisse Посмотреть сообщение
(p<0||p>1)?(cout<<"Wrong value!"<<endl,exit(0)):cout<<"p1 = ";
если условие выполнится, то результат тернарной операции будет exit(0)
если не выполнится, то cout << "p1 = ";

и в чем смысл?
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.09.2013, 17:01 #6
Цитата Сообщение от _ Посмотреть сообщение
если не выполнится, то cout << "p1 = ";
И дальше ввод значения p1. В этом и смысл: или выход, или ввод.

Добавлено через 1 минуту
У меня код работает (студия). Может от компилятора зависит.
0
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
20.09.2013, 17:46 #7
Цитата Сообщение от alsav22 Посмотреть сообщение
И дальше ввод значения p1. В этом и смысл: или выход, или ввод.
понятно. но все равно вот это
Цитата Сообщение от Fleurisse Посмотреть сообщение
(p<0||p>1)?(cout<<"Wrong value!"<<endl,exit(0)):cout<<"p1 = ";
даже не знаю как назвать. настоящий быдлокод. а потом удивляемся откуда лезут ошибки

вот то же самое, но читается намного легче:
C++
1
2
3
4
5
6
7
8
9
10
if (p<0 || p>1)
{
    cout<<"Wrong value!"<<endl;
    exit(0);
}
else
{
    cout<<"p1 = ";
    cin >> p1;
}
1
Fleurisse
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 6
21.09.2013, 10:54  [ТС] #8
Цитата Сообщение от _ Посмотреть сообщение
понятно. но все равно вот это

даже не знаю как назвать. настоящий быдлокод. а потом удивляемся откуда лезут ошибки

вот то же самое, но читается намного легче:
C++
1
2
3
4
5
6
7
8
9
10
if (p<0 || p>1)
{
    cout<<"Wrong value!"<<endl;
    exit(0);
}
else
{
    cout<<"p1 = ";
    cin >> p1;
}
Там упражнение именно для разбора тернарного оператора, поэтому if не использовалось, хоть с ним и проще)

Всем большое спасибо!!
0
21.09.2013, 10:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2013, 10:54
Привет! Вот еще темы с ответами:

InitCommonControls выдаёт ошибку - C++
Здраствуйте! Помогите пожалуста учу Win32 прохожу функцию InitCommonControls (загружающею библиотеку comctl32.dll ) выдает ошибку: кто...

Выдаёт непонятную ошибку - C++
Кратко: Нужно реализовать класс, представляющий собой функцию, заданную в табличной форме. Зашли в тупик на методе Delete, который...

Выдаёт ошибку в коде - C++
Вот задание : Разработать ф-цию типа int,которая возвращает произведение трёх параметров,если второй отрицательный,иначе квадрат...

Компилятор выдаёт ошибку - C++
Я новичок в C++ и не могу понять в чём ошибка написал вот такой код: #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; ...


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

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

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