题解 | 计算一元二次方程
#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.考虑多种情况