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

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

Войти
Регистрация
Восстановить пароль
 
mariooo
3 / 3 / 0
Регистрация: 01.12.2012
Сообщений: 53
#1

Не могу понять в чем ошибка - C++

01.12.2012, 03:51. Просмотров 312. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
#include<math.h>
#include<conio.h>
int main(){
    double a,b,c;
    double x1,x2,D,x;
    printf("Enter a b c for space:");
    scanf("%lf %lf %lf",&a,&b,&c);
    D=b*b-4*(a*c);
    printf("\nD=%lf",D);
    if(D>0)
                  {x1=-b+sqrt(D)/2*a;x2=-b-sqrt(D)/2*a;printf("\nx1=%lf    x2=%lf",x1,x2);}
    if(D<0)
                  {printf("\n\ndiscriminant is less than zero");}
    if(D==0)      
                  {x=-(b/2*a);printf("\nx=%lf",x);               }
    getch();
    return 0;
}
Все варианты получатся кроме того когда дискриминант больше 0 получаются не правильные результаты, в чем ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 03:51     Не могу понять в чем ошибка
Посмотрите здесь:
В чем ошибка не могу понять? C++
Не могу понять в чем ошибка C++
Не могу понять в чем ошибка?! C++
C++ Не могу понять в чем ошибка
C++ не могу понять в чем ошибка
Не могу понять в чем ошибка? C++
C++ Не могу понять в чем ошибка
не могу понять в чем ошибка. C++
C++ не могу понять в чем ошибка
Не могу понять в чем ошибка C++
Не могу понять в чем ошибка? C++
C++ не могу понять в чем ошибка

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Бородатый Админ
1 / 1 / 0
Регистрация: 17.11.2012
Сообщений: 27
01.12.2012, 03:56     Не могу понять в чем ошибка #2
C++
1
x1=-b+sqrt(D)/2*a;x2=-b-sqrt(D)/2*a;
Скобки забыли:

C++
1
x1=(-b+sqrt(D))/2*a;x2=(-b-sqrt(D))/2*a;
MrGluck
Модератор
Эксперт CЭксперт С++
7158 / 4324 / 630
Регистрация: 29.11.2010
Сообщений: 11,745
01.12.2012, 04:00     Не могу понять в чем ошибка #3
b/2.0
при b/2 идет потеря точности
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,050
Записей в блоге: 3
Завершенные тесты: 1
01.12.2012, 06:37     Не могу понять в чем ошибка #4
Цитата Сообщение от MrGluck Посмотреть сообщение
при b/2 идет потеря точности
Первый аргумент double.
C++
1
x=-(b/2*a)
Скорее всего, тут происходит сначала деление b/2, а потом умножение на a.
Вам же нужно: b/(2*a)

Добавлено через 1 минуту
Тут тоже самое:
C++
1
(-b+sqrt(D))/(2*a)
Yandex
Объявления
01.12.2012, 06:37     Не могу понять в чем ошибка
Ответ Создать тему
Опции темы

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