#include<stdio.h> #include<math.h> int main() { double a = 0.0; double b = 0.0; double c = 0.0; while (scanf("%lf %lf %lf", &a, &b, &c) != EOF) { if (a == 0) { printf("Not quadratic equation\n"); } else { double deta = b * b - 4 * a * c; if (deta == 0) { if (a < 0) { printf("x1=x2=%.2lf\n", (-b - sqrt(deta)) / (2 * a));//因为测试用例4 0 0会输出-0.00 所以加一个判断条件 } else { printf("x1=x2=%.2lf\n", (-b + sqrt(deta)) / (2 * a)); } } else if (deta > 0) { printf("x1=%.2lf;x2=%.2lf\n", ((-b - sqrt(deta)) / (2 * a)), ((-b + sqrt(deta)) / (2 * a))); } else { double real = -b / (2 * a); double image = sqrt(-deta) / (2 * a); if (image < 0)//测试用例的 -1 5 -10 会出现 -- +- 所以加判断条件 把-号消掉 { image = (-image); } printf("x1=%.2lf-%.2lfi;x2=%.2lf+%.2lfi\n", real, image, real, image); } } } return 0; }