#185: 公式解...但是交出卻一直錯


AbleNightroad (闇夜血羽)

學校 : 國立鳳新高級中學
編號 : 1255
來源 : [210.60.161.254]
最後登入時間 :
2008-03-13 12:45:11
a006. 一元二次方程式 | From: [210.60.161.254] | 發表日期 : 2008-02-26 11:16

#include #include int main(){ double a,b,c,d,y,z; while(scanf("%lf %lf %lf",&a,&b,&c)!=EOF){ if(sqrt(b*b-4*a*c)>=0){ y=(-b+sqrt(b*b-4*a*c))/2*a; z=(-b-sqrt(b*b-4*a*c))/2*a; if(sqrt(b*b-4*a*c)>0){ printf("Two different roots x1=%.0lf , x2=%.0lf\n",y,z); } else if(sqrt(b*b-4*a*c)==0){ printf("Two same roots x=%.0lf\n",y); } } else{ printf("No real root\n"); } } return 0; } =============================這是哭了數十次的分隔線============================= 他說正確程式應該要顯示 Two different roots x1=-1 而我程式所運算卻是顯示 Two different roots x1=-4 可是我用 x^2+2*x-1=0 去運算 答案是可以顯示-1...(這樣用好牽強=囗=") 真的是不知道哪有有bug....請大大們看一下QAQ 
#186: Re:公式解...但是交出卻一直錯


AbleNightroad (闇夜血羽)

學校 : 國立鳳新高級中學
編號 : 1255
來源 : [210.60.161.254]
最後登入時間 :
2008-03-13 12:45:11
a006. 一元二次方程式 | From: [210.60.161.254] | 發表日期 : 2008-02-26 11:21

#include #include int main(){ double a,b,c,d,y,z; while(scanf("%lf %lf %lf",&a,&b,&c)!=EOF){                      if(sqrt(b*b-4*a*c)>=0){   y=(-b+sqrt(b*b-4*a*c))/2*a; z=(-b-sqrt(b*b-4*a*c))/2*a;                      if(sqrt(b*b-4*a*c)>0){ printf("Two different roots x1=%.0lf , x2=%.0lf\n",y,z);}                                   else if(sqrt(b*b-4*a*c)==0){ printf("Two same roots x=%.0lf\n",y);}          } else{printf("No real root\n");} } return 0; } 抱歉...忘了斷行...重新發一次QAQ  
#187: Re:公式解...但是交出卻一直錯


POOHccc ()

學校 : 國立臺中技術學院
編號 : 1139
來源 : [220.135.97.253]
最後登入時間 :
2012-02-04 21:23:42
a006. 一元二次方程式 | From: [220.134.60.246] | 發表日期 : 2008-02-26 12:15

二個部分有問題:

  1. 應該是判斷 b^2-4ac >=0 而不是 sqrt( b^2-4ac ) >=0
  2. y=(-b+sqrt(b*b-4*a*c))/2*a 這樣會有錯,要嘛用/2/a,要嘛用/(2*a),z=xxxx也是相同的問題
 
ZeroJudge Forum