题解 | #计算一元二次方程#
计算一元二次方程
https://www.nowcoder.com/practice/7da524bb452441b2af7e64545c38dc26
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c;
float dert;
float x1,x2;
float x01;
while(scanf("%f %f %f",&a,&b,&c)!=EOF)
{
if(a==0) printf("Not quadratic equation\n");
else
{
dert=b*b-4*a*c;
if(dert==0)
{
if(b==0)
{
printf("x1=x2=0.00\n");
}
else
{
x1=x2=(0-b)/(2*a);
printf("x1=x2=%.2f\n",x1);
}
}
else if(dert>0)
{
x1=(0-b)/(2*a)-sqrt(dert)/(2*a);
x2=(0-b)/(2*a)+sqrt(dert)/(2*a);
printf("x1=%.2f;x2=%.2f\n",x1,x2);
}
else if(dert<0)
{
float i1,i2;
float i=sqrt(0-dert)/(2*a);
x01=(0-b)/(2*a);
if(i<0)
{
i1=i;
i2=0-i;
printf("x1=%.2f%.2fi;x2=%.2f+%.2fi\n",x01,i1,x01,i2);
}
else
{
i1=i;
i2=i;
printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",x01,i1,x01,i2);
}
}
}
}
return 0;
}
