7-3 求一元二次方程的根
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,d;
float x1,x2;
scanf("%f %f %f",&a,&b,&c);
if(a==0&&b==0&&c==0)
{
printf("Zero Equation");
}
else if(a==0&&b==0)
{
printf("Not An Equation");
}
else if(a==0)
{
printf("%.2f",-c/b);
}
else
{
d=b*b-4*a*c;
if(d>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
if(x1>x2)
{
printf("%.2f\n%.2f",x1,x2);
}
else
{
printf("%.2f\n%.2f",x2,x1);
}
}
else if(d==0)
{
x1=-b/2*a;
x2=x1;
printf("%f",x1);
}
else
{
if(a>0)
printf("%.2f+%.2fi\n%.2f-%.2fi",-b/(a*2),(sqrt(-d)/(a*2)),-b/(a*2),-(sqrt(-d)/(a*2)));
else if(a<0)
printf("x1=%.2f+%.2fi\nx2=%.2f-%.2fi",-b/(a*2),-(sqrt(-d)/(a*2)),-b/(a*2),(sqrt(-d)/(a*2)));
}
}
return 0;
}