
#include<stdio.h>
#include<math.h>
int main(void)
{
double a,b,c,d,x1,x2,x;
scanf("%lf %lf %lf",&a,&b,&c);
d=b*b-4*a*c;
if(a==0&&b==0&&c==0)
printf("Zero Equation");
else if(a==0&&b==0&&c!=0)
printf("Not An Equation");
else if(d>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
if(x1>x2)
printf("%.2lf\n%.2lf",x1,x2);
else
printf("%.2lf\n%.2lf",x2,x1);
}
else if(d==0)
{
x=b/(2*a);
printf("%.2lf",x);
}
else if(d<0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("0.0+%.2lfi\n0.0-%.2lfi",x1,x2);
}
return 0;
}

剩下的还是不会
#include<stdio.h>
#include<math.h>
int main(void)
{
double a,b,c,d,x1,x2;
double eps=1.0e-15;
scanf("%lf %lf %lf",&a,&b,&c);
d = fmax(fabs(a),fabs(b));
d = fmax(d,fabs(c));
if(d<eps) {
printf("Zero Equation\n");
return 0;
}
a = a / d;
b = b / d;
c = c / d; //归一化
if(fabs(a)<eps&&fabs(b)<eps) {
printf("Not An Equation\n");
return 0;
}
d = b*b - 4*a*c;
if(d>eps) {
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
if(x1>x2)
printf("%.2lf\n%.2lf",x1,x2);
else
printf("%.2lf\n%.2lf",x2,x1); //两个实根
}
else if(d>-eps) {
x1 = -b / (2*a);
printf("%.2lf",x1); //一个实根
}
else {
d = fabs(sqrt(-d) / (2*a));
b = -b / (2*a);
printf("%.2lf+%.2lfi\n",b,d);
printf("%.2lf-%.2lfi\n",b,d); //共轭复根
}
return 0;
}