题解 | #计算一元二次方程#
计算一元二次方程
https://www.nowcoder.com/practice/7da524bb452441b2af7e64545c38dc26
#include<stdio.h> #include<math.h>//因为用到了开根号函数sqrt() int main() { float a,b,c,d,e1,e2,f; while(scanf("%f %f %f\n",&a,&b,&c)!=EOF) { if(a==0) { printf("Not quadratic equation\n"); } else { d=b*b-4*a*c; if(d==0) { e1=-b/2/a+0;//之所以+0,是因为不加0,会有-0输出 printf("x1=x2=%.2f\n",e1); } if(d>0) { e1=(-b-sqrt(d))/2/a; e2=(-b+sqrt(d))/2/a; printf("x1=%.2f;x2=%.2f\n",e1,e2); } if(d<0) { f=-1*b/2/a; e2=sqrt(-d)/2/a;//开根号必为正,e2必为正 e1=-1*e2;//正数乘以-1必为负数,负数自带负号 printf("x1=%.2f%.2fi;x2=%.2f+%.2fi\n",f,e1,f,e2);//故这样输出 } } } return 0; }
总结:
-0+0=0