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