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