#include <stdio.h> #include<math.h> #define complex int main() { float a,b,c; float d,e,x1,x2,real,real_,xx1,xx2,x; while(scanf("%f %f %f",&a,&b,&c)!=EOF) { d=b*b-4*a*c; e=sqrt(d); x=(-b)/(2*a); x1=(-b-e)/(2*a); x2=(-b+e)/(2*a); real=-b/(2*a); real_=sqrt(-d)/(2*a); xx1=complex(real,-real_); xx2=complex(real,real_); if(a==0) printf("Not quadratic equation\n"); else { if(d==0) {if(x1==-0) x1=0; x2=0;//这里真的太细节了,如果等于-零,你要怎么处理 printf("x1=x2=%.2f\n",x1);} else if(d>0) printf("x1=%.2f;x2=%.2f\n",x1,x2); else if(d<0) printf("x1=%.2f%.2fi;x2=%.2f+%.2fi\n",real,xx1,real,xx2); else ; } getchar(); } return 0; }