#7757: 為什麼輸出的值不合乎我所預期??(新手 敬請見諒)


s798 (丁丁教主)

學校 : 不指定學校
編號 : 32373
來源 : [223.142.191.116]
最後登入時間 :
2016-09-20 23:33:40
a006. 一元二次方程式 | From: [111.243.14.188] | 發表日期 : 2013-05-18 16:43

#include<cstdio>
#include<cmath>
int main(){
    int a, b, c, D;
    while(scanf("%d%d%d", &a, &b, &c) != EOF){

        D=b*b-4*a*c;

        if (D > 0){
            printf("Two different roots x1=%d , x2=%d\n", (sqrt(D)+(-b))/(2*a), ((-b)-sqrt(D))/(2*a));
        }
        else if (D == 0){
            printf("Two same roots x=%d\n", (-b)/2*a);
        }
        else{
            printf("No real root\n");
        }
    }


}
 
#7758: Re:為什麼輸出的值不合乎我所預期??(新手 敬請見諒)


shes50103 (夢想城市)

學校 : 國立政治大學附屬高級中學
編號 : 32307
來源 : [111.248.234.197]
最後登入時間 :
2014-01-19 17:43:20
a006. 一元二次方程式 | From: [111.248.219.194] | 發表日期 : 2013-05-18 21:01

觀念嚴重錯誤
 
#7759: Re:為什麼輸出的值不合乎我所預期??(新手 敬請見諒)


kktest (test)

學校 : 不指定學校
編號 : 32879
來源 : [111.249.90.74]
最後登入時間 :
2013-05-19 02:06:08
a006. 一元二次方程式 | From: [111.249.90.74] | 發表日期 : 2013-05-19 02:12

>printf("Two same roots x=%d\n", (-b)/2*a);

我沒看很仔細,但這裡如果b為奇數就會有問題

乘a應該寫在前

(-b)*a/2

或先將型態擴大到浮點計算 

(-b)/2.*a

以及題目有提到-0的問題

 
#7760: Re:為什麼輸出的值不合乎我所預期??(新手 敬請見諒)


s798 (丁丁教主)

學校 : 不指定學校
編號 : 32373
來源 : [223.142.191.116]
最後登入時間 :
2016-09-20 23:33:40
a006. 一元二次方程式 | From: [140.112.4.194] | 發表日期 : 2013-05-19 14:04

觀念嚴重錯誤 
 
謝指教!  
ZeroJudge Forum