#10336: 最後一個測資點過不了,正確:x=-1(重根),我的輸出為x=-2(重根)


s69888s69888 (ALLEN)


#include<stdio.h>

#include<math.h>

 

 

int main(void){

int a,b,c,x1,x2,s;

 

while(scanf("%d%d%d",&a,&b,&c)!=EOF){

if(b*b-4*a*c>=0){

s=sqrt(b*b-4*a*c);

x1=(-b+s)/2;

       x2=(-b-s)/2;

       if(x1==x2){

       printf("Two same roots x=%d\n",x2);

}

       else if(x1>x2){

       printf("Two different roots x1=%d , x2=%d\n",x1,x2);

}

       else {

       printf("Two different roots x1=%d , x2=%d\n",x2,x1);

}

}

        else {

printf("No real root\n");

}

}

 

return 0;

}

#10337: Re:最後一個測資點過不了,正確:x=-1(重根),我的輸出為x=-2(重根)


Benson86 (nobodyzxc)


x1=(-b+s)/(2*a); x2=(-b-s)/(2*a); 然後建議判別式先用if,else if分流再進行運算, 不要一開始就算否則會白算又容易出錯
#10338: Re:最後一個測資點過不了,正確:x=-1(重根),我的輸出為x=-2(重根)


s69888s69888 (ALLEN)


x1=(-b+s)/(2*a); x2=(-b-s)/(2*a); 然後建議判別式先用if,else if分流再進行運算, 不要一開始就算否則會白算又容易出錯

謝謝,我找到問題點了