Problem ID :d071. 3.一元二次方程式的根

New Thread

User 請問哪裡出錯!?(第二個測值點)

adam89102 SendIMessage
小十

d071. 3.一元二次方程式的根 | From: 210.71.26.21 | Post Date:2017-02-23 13:03:10.0

#include<iostream>
#include<math.h>

using namespace std;

int main()
{
double a,b,c,D,x1,x2;
cin>>a>>b>>c;
D=b*b-4*a*c;
if(D>0)
{
x1=(-b+sqrt(D))/(2*a);
x2=(-b-sqrt(D))/(2*a);
printf("Two different roots x1=%.2f , x2=%.2f",x1,x2);
}
else if(D==0)
{
x1=-b/(2*a);
                printf("Two same roots x=%.2f",x1);
}
else
{
cout<<"No real root";
}

    return 0;
}

 


文章類型: 一般 | Reply | Back
User Re:請問哪裡出錯!?(第二個測值點)

sagit SendIMessage
sagit

d071. 3.一元二次方程式的根 | From: 192.168.2.113 | Post Date:2017-02-23 14:00:15.0

應該要印出0.00卻印出-0.00,這是浮點數誤差,你可以把 x1 加上一個很小的數,
例如 0.00000000001,應該可以解決。 


文章類型: 一般 | Reply | Back

New Thread

ZeroJudge Forum