#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c;//一元二次方程三系数
if(scanf("%f %f %f",&a,&b,&c)!=3)
{
printf("input error!");
return 0;
}
if(a==0&&b==0)//a,b都为0和abc都为零
{
if(c==0)
printf("Zero Equation");
else
printf("Not An Equation");
return 0;
}
if(a==0)//当a=0且b!=0,一元一次方程
{
printf("%0.2f",-c/b);
return 0;
}
float Delta=b*b-4*a*c;//定义Delta
if(Delta<0)//三种情况之1:两虚根
{
if(b==0)//b为0时无实部
printf("0.00+%0.2fi\n0.00-%0.2fi",sqrt(-Delta)/(2*a),sqrt(-Delta)/(2*a));
else
printf("%0.2f+%0.2fi\n%0.2f-%0.2fi",(-b) / (2 * a),sqrt(-Delta) / (2 * a),(-b) / (2 * a),sqrt(-Delta) / (2 * a));
}
else if(Delta==0)//三种情况之2:两相同实根
printf("%0.2f",-b/(2*a));
else//三种情况之3:两不同实根
printf("%0.2f\n%0.2f",(-b+sqrt(b*b-4*a*c))/(2*a),(-b-sqrt(b*b-4*a*c))/(2*a));
return 0 ;
}
留言