#include<stdio.h> int main() { float a,b,c,d; while (scanf("%f %f %f",&a,&b,&c)!=EOF) { d=b*b-4*a*c; if (a==0) printf("Not quadratic equation\n"); else { if (d==0) printf("x1=x2=%.2f\n",(-b/(2*a)==0)?0:(-b/(2*a))); else if (d>0) printf("x1=%.2f;x2=%.2f\n",(-b-sqrt(d))/(2*a),(-b+sqrt(d))/(2*a)); else printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",-b/(2*a),fabs(sqrt(-d)/(2*a)),-b/(2*a),fabs(sqrt(-d)/(2*a))); } } return 0; }上面的几个答案都有点小bug,主要是+-0.00还有叙述多一个负号的问题