题解 | 计算一元二次方程
计算一元二次方程
https://www.nowcoder.com/practice/7da524bb452441b2af7e64545c38dc26
#include <stdio.h> int main() { float a, b, c, d, x1, x2, s, w, q, e; while (scanf("%f %f %f", &a, &b, &c) != EOF) { d = b*b-4.0*a*c; if (a != 0) { if (d > 0) { x1 = (-b+sqrt(d))/(2*a); x2 = (-b-sqrt(d))/(2*a); q =x1 - x2; if(q <= 0) printf("x1=%.2f;x2=%.2f'n",x1,x2); else printf("x1=%.2f;x2=%.2f\n",x2,x1); } else if(d < 0){ s = (-b)/ 2 / a; w = sqrt(-d)/2/a; if(s==-0.00) { s=0.00; printf("x1=%.2f-%.2fi;x2=%.2f+%0.2fi\n",s,w,s,w); } else { printf("x1=%.2f-%.2fi;x2=%.2f+%0.2fi\n",s,w,s,w); } } else { x1 = x2 = -b/ 2/a; if (x1== -0.00 || x2 == -0.00) { x1=x2=0.00; printf("x1=x2=%.2f\n", x1); } else printf("x1=x2=%.2f\n", x1); } } else printf("Not quadratic equation\n"); } return 0; }