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


AbleNightroad (闇夜血羽)


#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 (闇夜血羽)


#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 ()


二個部分有問題:

  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也是相同的問題