Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
KetchupBaltimor
0 / 0 / 0
Регистрация: 04.11.2016
Сообщений: 30
1

Решение квадратного уравнения

10.04.2017, 21:43. Просмотров 971. Ответов 5
Метки нет (Все метки)

Где-то ошибка, не могу понять. Когда ввожу 0 пишет не то. Думаю ошибки с If... например, когда ввожу а=0, б=5,с=-25 выводит
Введите а 0
Введите b 5
Введите c -25
x=5,000000
x1=-1,#INF00
x2=-1,#INF00
аааа
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
#include<stdio.h>
#include<conio.h>
#include<math.h> 
#include<locale.h>
main()
{
setlocale(0, "rus");
    float a,b,c,x1,x2,dis;
    printf("Введите а ");
    scanf("%f", &a);
    printf("Введите b ");
    scanf("%f", &b);
    printf("Введите c ");
    scanf("%f", &c);
    if (a==0 &&b!=0 &&c!=0)
    {
 
        x1=-c/b;
        printf("x=%f\n",x1);
    }
    if (b==0 &&a!=0 &&c!=0)
{
   if ((c/a)<=0)
   
  {
    printf("Net reshenij");} else
  {
    x1=sqrt(-c/a);
   x2=sqrt(-c/a);
    
printf("x1=x2=%f\n",x1);
}
}
if (c==0 &&a!=0)
if (b==0)
{x1=sqrt(1/a);
printf("x1=%f\n",x1);
}
else
{x1=0;
x2=(-b/a);
printf("при с=0 x1=%f\n",x1);
printf("при с=0 x2=%f\n",x2);
}
if(c!=0 && a!=0 && b!=0)
{dis=b*b-4*a*c;
printf("D=%f\n", dis);}
if(dis>=0)
 
    {
    x1= ((-b+sqrt(dis))/(2*a));
    x2= ((-b+sqrt(dis))/(2*a));}
    printf("x1=%f\n",x1);
printf("x2=%f\n",x2);
 
    
 
 getch();
  return 0;
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2017, 21:43
Ответы с готовыми решениями:

Решение квадратного уравнения
Корни X1 и X2 - передаются по ссылке и &quot;возвращаются&quot; в main() сама функция QuadEqu() возвращает...

Решение квадратного уравнения
Должен написать программу которая будет решать уравнения второго уровня на Си. (уравнения типа...

Решение квадратного уравнения
Написать программу для решения квадратного уравнения с помощью форм

Решение квадратного уравнения
Подскажите, пожалуйста, что я здесь сделал не правильно: #include &lt;stdio.h&gt; #include&lt;math.h&gt;...

Решение квадратного уравнения
Написать функцию, которая обеспечивает решение квадратного уравнения. Параметрами функции должны...

5
KetchupBaltimor
0 / 0 / 0
Регистрация: 04.11.2016
Сообщений: 30
10.04.2017, 21:50  [ТС] 2
Где-то ошибка, не могу понять. Когда ввожу 0 пишет не то. Думаю ошибки с If... например, когда ввожу а=0, б=5,с=-25 выводит
Введите а 0
Введите b 5
Введите c -25
x=5,000000
x1=-1,#INF00
x2=-1,#INF00
аааа
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
#include<stdio.h>
#include<conio.h>
#include<math.h> 
#include<locale.h>
main()
{
setlocale(0, "rus");
    float a,b,c,x1,x2,dis;
    printf("Введите а ");
    scanf("%f", &a);
    printf("Введите b ");
    scanf("%f", &b);
    printf("Введите c ");
    scanf("%f", &c);
    if (a==0 &&b!=0 &&c!=0)
    {
 
        x1=-c/b;
        printf("x=%f\n",x1);
    }
    if (b==0 &&a!=0 &&c!=0)
{
   if ((c/a)<=0)
   
  {
    printf("Net reshenij");} else
  {
    x1=sqrt(-c/a);
   x2=sqrt(-c/a);
    
printf("x1=x2=%f\n",x1);
}
}
if (c==0 &&a!=0)
if (b==0)
{x1=sqrt(1/a);
printf("x1=%f\n",x1);
}
else
{x1=0;
x2=(-b/a);
printf("при с=0 x1=%f\n",x1);
printf("при с=0 x2=%f\n",x2);
}
if(c!=0 && a!=0 && b!=0)
{dis=b*b-4*a*c;
printf("D=%f\n", dis);}
if(dis>=0)
 
    {
    x1= ((-b+sqrt(dis))/(2*a));
    x2= ((-b+sqrt(dis))/(2*a));}
    printf("x1=%f\n",x1);
printf("x2=%f\n",x2);
 
    
 
 getch();
  return 0;
}
0
Lesha_
3 / 3 / 6
Регистрация: 09.04.2017
Сообщений: 43
10.04.2017, 22:02 3
Ты делишь с/а где с=-25 а, а=0 и получается ты -25 делишь на 0, поэтому компьютер выводит INF.

Добавлено через 3 минуты
Попробуй вести а=1 вместо а=0 должно все получится.
0
Creeperasha
3 / 3 / 4
Регистрация: 06.03.2016
Сообщений: 29
Завершенные тесты: 1
10.04.2017, 22:35 4
Лучший ответ Сообщение было отмечено KetchupBaltimor как решение

Решение

У тебя dis изначально не выставлен в отрицательное число, поэтому условие
C
1
if(dis>=0)
всегда срабатывает
Я подправил + слегка отформатировал + добавил везде else.
Вот код:
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<locale.h>
int main()
{
    setlocale(0, "rus");
    float a,b,c,x1,x2,dis;
    printf("Введите а ");
    scanf("%f", &a);
    printf("Введите b ");
    scanf("%f", &b);
    printf("Введите c ");
    scanf("%f", &c);
    if (a==0 &&b!=0 &&c!=0)
    {
        x1=-(c/b);
        x2=-(c/b);
        printf("x=%f\n",x1);
    }
    else
    if (b==0 &&a!=0 &&c!=0)
    {
        if ((c/a)<=0)
            printf("Net reshenij");
        else
        {
            x1=sqrt(-(c/a));
            x2=sqrt(-(c/a));
            printf("x1=x2=%f\n",x1);
        }
    }
    else
    if (c==0 &&a!=0)
        if (b==0)
        {
            x1=sqrt(1/a);
            printf("x1=%f\n",x1);
        }
        else
        {
            x1=0;
            x2=(-b/a);
            printf("при с=0 x1=%f\n",x1);
            printf("при с=0 x2=%f\n",x2);
        }
    else
    if(c!=0 && a!=0 && b!=0)
    {
        dis=b*b-4*a*c;
        printf("D=%f\n", dis);
        if(dis>=0)
        {
            x1= ((-b+sqrt(dis))/(2*a));
            x2= ((-b+sqrt(dis))/(2*a));
            printf("x1=%f\n",x1);
            printf("x2=%f\n",x2);
        }
    }
    getch();
    return 0;
}
С else всё работает и без присвоения dis.

Добавлено через 8 минут
И почитайте Советы по стилю кода.
1
KetchupBaltimor
0 / 0 / 0
Регистрация: 04.11.2016
Сообщений: 30
12.04.2017, 13:15  [ТС] 5
Спасибо большое! Там еще с дискриминантом я не углядела. x2= ((-b+sqrt(dis))/(2*a));, должен быть минус т.е
x2= ((-b-sqrt(dis))/(2*a))
0
Creeperasha
3 / 3 / 4
Регистрация: 06.03.2016
Сообщений: 29
Завершенные тесты: 1
16.04.2017, 12:57 6
Не за что)
1
16.04.2017, 12:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2017, 12:57

Решение квадратного уравнения
Здравствуйте, ниже приведено задание и мое решение, хотелось бы проверить его на наличие ошибок...

Написать решение квадратного уравнения с ограничением
Помогите составить программу решения квадратного уравнения на С ax2+bx+c=0 учитывающую все...

Решение квадратного уравнения (найти ошибку)
float discr( float a,float b,float c); float findx(float b, float a, float c); int main() { ...


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

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

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