#3321: 請問用c語言寫出,哪裡出錯了??


feeling006 (zerg)


#include <stdio.h>
#include <math.h>
int main (void){
 int a,b,c;
 double x1,x2;
 while(scanf("%d %d %d",&a,&b,&c)!=EOF){

x1=(-b+sqrt(b*b-4ac))/2a;
x2=(-b-sqrt(b*b-4ac))/2a;

if(x1!=x2){
printf("Two different roots x1=%f , x2=%f ",x1,x2);
}else if(x1==x2){
printf("Two same roots x=%f ",x1);
}else if(b*b-4ac<0){
printf("No real root");
}
 
}
return 0;
}
#3322: Re:請問用c語言寫出,哪裡出錯了??


feeling006 (zerg)


#include <stdio.h>
#include <math.h>
int main (void){
 int a,b,c;
 int x1,x2,q;
 while(scanf("%d %d %d",&a,&b,&c)!=EOF){

q=sqrt(b*b-4*a*c);
x1=(-b+q)/(2*a);
x2=(-b-q)/(2*a);

if(b*b-4*a*c<0){
printf("No real root");
}else if(x1!=x2){
printf("Two different roots x1=%d , x2=%d ",x1,x2);
}else if(x1==x2){
printf("Two same roots x=%d ",x1);
}
 
}
return 0;

###正確解答~~