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


s798 (丁丁教主)


#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 (夢想城市)


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


kktest (test)


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

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

乘a應該寫在前

(-b)*a/2

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

(-b)/2.*a

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

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


s798 (丁丁教主)


觀念嚴重錯誤 
 
謝指教!