#11300: 第5測資不過 求大大解惑


joker1106 (joker13579)

學校 : 國立清華大學
編號 : 59006
來源 : [140.114.223.159]
最後登入時間 :
2016-11-09 18:21:49
a006. 一元二次方程式 | From: [111.241.10.203] | 發表日期 : 2016-08-23 22:43

#include<stdio.h>
#include<math.h>
int main(void)
{
int a,b,c,x,x1,x2;
while(scanf("%d%d%d",&a,&b,&c)!=EOF){
    if(b * b - 4 * a * c > 0){
        x1 = (-b+sqrt(b * b - 4 * a * c))/2*a;
        x2 = (-b-sqrt(b*b-4*a*c))/2*a;
        printf("Two different roots x1=%d , x2=%d\n",x1,x2);
    }
    else if(b * b - 4 * a * c == 0){
        x = - b / 2 * a;
        printf("Two same roots x=%d\n",x);
    }
    else{
        printf("No real root\n");
    }
}
return 0;
}

 
#11317: Re:第5測資不過 求大大解惑


who_am_I (kruztw)

學校 : 國立臺灣師範大學
編號 : 54056
來源 : [36.224.144.147]
最後登入時間 :
2023-04-22 22:46:31
a006. 一元二次方程式 | From: [61.223.170.84] | 發表日期 : 2016-08-30 23:34

#include
#include
int main(void)
{
int a,b,c,x,x1,x2;
while(scanf("%d%d%d",&a,&b,&c)!=EOF){
    if(b * b - 4 * a * c > 0){
        x1 = (-b+sqrt(b * b - 4 * a * c))/2*a;
        x2 = (-b-sqrt(b*b-4*a*c))/2*a;
        printf("Two different roots x1=%d , x2=%d\n",x1,x2);
    }
    else if(b * b - 4 * a * c == 0){
        x = - b / 2 * a; ///////////////////////////////////////注意
        printf("Two same roots x=%d\n",x);
    }
    else{
        printf("No real root\n");
    }
}
return 0;
}

建議你,學習任何語言時,不確定其運算方式時,接用()來限定它

x = - b / 2 * a;

執行順序是 

x = -b / 2;

x *= a;

ex:  a = 3, b =  6    結果:  x = - 9   但你希望是 -1

所以,應該寫成 x =  -b / (2*a);  才對

 
ZeroJudge Forum