#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还有叙述多一个负号的问题