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

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

Восстановить пароль Регистрация
 
Cip_her
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 4
24.03.2013, 18:18     Неполадки при работе с оператором if-else #1
Совсем недавно начал изучать С++, дошёл до оператора условия и тут возникла проблема в практике. Код решения квадратных уравнений ( создал специально так много условий, чтобы лучше усвоить ):
[
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, не находя корней уравнения, хотя они есть. Помогите найти ошибку, а то много времени уже убил
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 18:18     Неполадки при работе с оператором if-else
Посмотрите здесь:

Пауза при работе программы. C++
неполадки в работе C++
Ошибка при работе со структурами C++
Ошибка при работе с графикс.аш C++
Ошибки при работе с шаблонами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Banddk
37 / 37 / 1
Регистрация: 08.12.2012
Сообщений: 157
Записей в блоге: 1
24.03.2013, 18:25     Неполадки при работе с оператором if-else #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)!!!!
Может еще где-нибудь есть ошибки ,но в таком коде не удобно разбираться
Cip_her
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 4
24.03.2013, 18:33  [ТС]     Неполадки при работе с оператором if-else #3
Спасибо, невнимателен был) Попробуй ввести параметр b равный 0. Тогда поймёшь, почему я создал эту тему.
Banddk
37 / 37 / 1
Регистрация: 08.12.2012
Сообщений: 157
Записей в блоге: 1
24.03.2013, 18:38     Неполадки при работе с оператором if-else #4
еще во всех if надо ставить == а не =, =-знак присваивания ,а не равенство
Cip_her
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 4
24.03.2013, 18:47  [ТС]     Неполадки при работе с оператором if-else #5
Вот она ошибка. Спасибо большое, выручил)
Yandex
Объявления
24.03.2013, 18:47     Неполадки при работе с оператором if-else
Ответ Создать тему
Опции темы

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