#16904: 測試結果跟最後結果不同


graytle (Graytle)

學校 : 國立臺中教育大學
編號 : 91908
來源 : [36.232.47.88]
最後登入時間 :
2019-03-13 14:20:23
a006. 一元二次方程式 | From: [101.8.148.126] | 發表日期 : 2019-02-18 14:17

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int a,b,c,d,x1,x2;
while(cin>>a>>b>>c)
{
d=pow(b,2)-4*a*c;
x1=(-b+sqrt(d))/2*a;
x2=(-b-sqrt(d))/2*a;
if(d>0)
{
if(x1>x2)
cout<<"Two different roots x1="<<x1<<" , x2="<<x2<<endl;
if(x2>x1)
cout<<"Two different roots x1="<<x2<<" , x2="<<x1<<endl;
}

if(d<0)
cout<<"No real root"<<endl;
else if(x1==x2)
cout<<"Two same roots x="<<x1<<endl;
}
}

 

想請問程式哪裡出錯導致最後結果為NA(測試結果是AC)

 
#16905: Re:測試結果跟最後結果不同


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [1.168.27.116]
最後登入時間 :
2024-03-31 17:58:15
a006. 一元二次方程式 | From: [122.118.80.202] | 發表日期 : 2019-02-18 15:22

 

測試的數據少,當然容易 AC

建議先別急著開平方 ( 先確認是否為平方數 ),不然會有誤差。

 
ZeroJudge Forum