Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 4
1

Неполадки при работе с оператором if-else

24.03.2013, 18:18. Просмотров 405. Ответов 4
Метки нет (Все метки)


Совсем недавно начал изучать С++, дошёл до оператора условия и тут возникла проблема в практике. Код решения квадратных уравнений ( создал специально так много условий, чтобы лучше усвоить ):
[
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 #include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
float a, b, c, x1, x2, d;
 
cout << "ax^2 + bx + c = 0" << endl;
 
cout << "Vvedite znacheniya a, b ,c" << endl;
cin >> a >> b >> c;
 
if ( b < 0 )
{
if ( c < 0 )
cout << a << "x^2" << b << "x" << c << "=0" << endl;
else if ( c = 0 )
cout << a << "x^2" << b << "x" << "=0" << endl;
else
cout << a << "x^2" << b << "x+" << c << "=0" << endl;
 
}
 
else if ( b = 0 )
{
if ( c < 0 )
cout << a << "x^2" << c << "=0" << endl;
else if ( c = 0 )
cout << a << "x^2" << "=0" << endl;
else
cout << a << "x^2+" << c << "=0" << endl;
}
else
{
if ( c < 0 )
cout << a << "x^2+" << b << "x" << c << "=0" << endl;
else if ( c = 0 )
cout << a << "x^2+" << b << "x" << "=0" << endl;
else
cout << a << "x^2+" << b << "x+" << c << "=0" << endl;
}
 
d = pow ( b, 2 ) - 4 * a * c;
 
if ( d > 0 )
{
x1 = ( - b - sqrt ( d )) / 2 * a;
x2 = ( - b + sqrt ( d )) / 2 * a;
cout << "Korni uravneniya ravny: " << x1 << " and " << x2 << endl;
}
 
else if ( d = 0 )
{
x1 = ( - b ) / 2 * a;
cout << "Koren' uravneniya reven: " << x1 << endl;
}
 
else
 
cout << "Uravneniye ne imeyet korney" << endl;
 
return 0;
}
]

Проблема, собственно, в том, что при вводе параметра b, программа пишет другие значения c и b, не находя корней уравнения, хотя они есть. Помогите найти ошибку, а то много времени уже убил
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2013, 18:18
Ответы с готовыми решениями:

Неполадки при работе с Windows 7
1Когда пытаешся скачать файлы с Deposit он пишет что смоего ip же идёт скачиваниечто делаать? 2...

Неполадки при работе с роутером
Недавно появилась проблема - из-за обилия WI FI сетей интернет стал существенно медленнее(скорость...

Неполадки при работе с KMPlayer
Народ, нужна помощь: Ни с того ни с сего, KMPlayer начал выдавать странную картинку при просмотре...

Неполадки с модемом, при работе в Windows 7
вот такая проблема: включаю модем (Di-Link dsl-2520u) чудо это подключается, вроде всё нормально,...

4
38 / 38 / 13
Регистрация: 08.12.2012
Сообщений: 157
Записей в блоге: 1
24.03.2013, 18:25 2
Для ввода кода есть специальная кнопка с++ на нее надо жать когда пишешь код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
float a, b, c, x1, x2, d;
 
cout << "ax^2 + bx + c = 0" << endl;
 
cout << "Vvedite znacheniya a, b ,c" << endl;
cin >> a >> b >> c;
 
if ( b < 0 )
{
if ( c < 0 )
cout << a << "x^2" << b << "x" << c << "=0" << endl;
else if ( c = 0 )
cout << a << "x^2" << b << "x" << "=0" << endl;
else
cout << a << "x^2" << b << "x+" << c << "=0" << endl;
 
}
 
else if ( b = 0 )
{
if ( c < 0 )
cout << a << "x^2" << c << "=0" << endl;
else if ( c = 0 )
cout << a << "x^2" << "=0" << endl;
else
cout << a << "x^2+" << c << "=0" << endl;
}
else
{
if ( c < 0 )
cout << a << "x^2+" << b << "x" << c << "=0" << endl;
else if ( c = 0 )
cout << a << "x^2+" << b << "x" << "=0" << endl;
else
cout << a << "x^2+" << b << "x+" << c << "=0" << endl;
}
 
d = pow ( b, 2 ) - 4 * a * c;
 
if ( d > 0 )
{
x1 = ( - b - sqrt ( d )) / 2 * a;
x2 = ( - b + sqrt ( d )) / 2 * a;
cout << "Korni uravneniya ravny: " << x1 << " and " << x2 << endl;
}
 
else if ( d = 0 )
{
x1 = ( - b ) / 2 * a;
cout << "Koren' uravneniya reven: " << x1 << endl;
}
 
else
 
cout << "Uravneniye ne imeyet korney" << endl;
 
return 0;
}
Добавлено через 3 минуты
Цитата Сообщение от Banddk Посмотреть сообщение
x1 = ( - b - sqrt ( d )) / 2 * a;
x2 = ( - b + sqrt ( d )) / 2 * a;
cout << "Korni uravneniya ravny: " << x1 << " and " << x2 << endl;
}
else if ( d = 0 )
{
x1 = ( - b ) / 2 * a;
надо расставлять скобки :
( - b - sqrt ( d )) / 2 * a не равно ( - b - sqrt ( d )) / (2 * a)!!!!
Может еще где-нибудь есть ошибки ,но в таком коде не удобно разбираться
1
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 4
24.03.2013, 18:33  [ТС] 3
Спасибо, невнимателен был) Попробуй ввести параметр b равный 0. Тогда поймёшь, почему я создал эту тему.
0
38 / 38 / 13
Регистрация: 08.12.2012
Сообщений: 157
Записей в блоге: 1
24.03.2013, 18:38 4
еще во всех if надо ставить == а не =, =-знак присваивания ,а не равенство
0
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 4
24.03.2013, 18:47  [ТС] 5
Вот она ошибка. Спасибо большое, выручил)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2013, 18:47

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Неполадки при работе и входе в системе
Три дня назад, в момент когда я спокойно сидел и работал за компьютером, на экране внезапно...

Неполадки при работе с Epson Stylus TX 219
Пылилось сие чудо техники 3 года в чулане!тут понадобился,достал прочистил,поставил родные драйвера...

неполадки в работе
Доброго времени суток . Начну с самого начала . Моё железо состояло из : мать ABIT IS 7 , intel 4...

Неполадки в работе клавиатуры
Здравствуйте. Время от времени перестают работать некоторые клавиши на ноутбуке Asus n550jv:...


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

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

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