#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main() {
// putchar输出字符,getchar输入字符, printf格式输出,scanf格式输入, puts输出字符串, gets输入字符串
// 一元二次方程求解
float a, b, c;
printf("Input a ,b , c :");
scanf("%f %f %f", &a, &b, &c);
if (fabs(a) <= 1e-15) //条件:当|a|<0 时 可以改成<=EPS
{ //1e-15 表示一个极小的数 浮点型零就是一个近似值
printf("不是一元二次方程");
printf("x = %.2f", c / b);
exit(0); //执行到此处 程序返回0 并退出
} else {
float disc, p, q, x1, x2;
disc = b * b - 4 * a * c;
p = -b / (2 * a);
q = sqrt(fabs(disc)) / (2 * a);
if (fabs(disc) <= 1e-15) {
printf("x1 = x2 = %.2f", p);
} else if (disc > 1e-15) {
printf("x1 = %.2f, x2 = %.2f", p + q, p - q);
} else //(德尔塔小于0 )
{
printf("x1 = %.2f+%.2fi\n", p, q);
printf("x1 = %.2f-%.2fi\n", p, q);
}
}
return 0;
}