题解 | #计算一元二次方程#
计算一元二次方程
https://www.nowcoder.com/practice/7da524bb452441b2af7e64545c38dc26
#include <stdio.h> #include <math.h> int main() { float a,b,c; while(scanf("%f %f %f",&a,&b,&c)!=EOF) { if(a==0) { printf("Not quadratic equation\n"); } else { float flag = b*b-(4*a*c); if(flag==0) { if(b==c&&c==0)//b和c任意一个为零,另一个也为零 { printf("x1=x2=0.00\n"); } else { printf("x1=x2=%.2f\n",-b/(2*a));//flag为0,不用再写 } } else if(flag>0) { float x1 = (-b-sqrt(flag))/(2.0*a); float x2 = (-b+sqrt(flag))/(2.0*a); printf("x1=%.2f;x2=%.2f",x1,x2); } else { float image = sqrt(-flag)/(2.0*a); float real = -b/(2.0*a); if(image<0)//注意x1虚部小于x2虚部系数 image = -image; printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",-b/(2*a),image,-b/(2*a),image); } } } return 0; }