题解 | 计算一元二次方程
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,x1,x2,d;
while(scanf("%lf %lf %lf",&a,&b,&c)!=EOF){
d=b*b-4*a*c;
if(a==0)
{
printf("Not quadratic equation\n");
}
else
{
if(d==0)
{
if((-b+sqrt(d))*1.0/2/a==-0.00)
{
printf("x1=x2=0.00\n");
}
else
printf("x1=x2=%.2lf\n",(-b+sqrt(d))*1.0/2/a);
}
else if(b*b-4*a*c>0)
{
printf("x1=%.2lf;x2=%.2lf\n",(-b-sqrt(d))*1.0/2/a,(-b+sqrt(d))*1.0/2/a);
}
else
{
printf("x1=%.2lf-%.2lfi;x2=%.2lf+%.2lfi\n",-b*1.0/2/a,sqrt(-d)*1.0/2/a,-b*1.0/2/a,sqrt(-d)*1.0/2/a);
}
}
}
return 0;
}
注意点
1.求根公式
2.虚部实部注意i加在虚部后面
3.考虑多种情况
查看23道真题和解析