#include <stdio.h>
#include <math.h>
int main()
{
double a, // 二次项系数
b, // 一次项系数
c; // 常数项
double delta;
// 第一步:输入必要的数据;输入一元二次方程各项系数的值
printf("请输入系数(二次项系数 一次项系数 常数项 比如: 3 5.6 2");
scanf("%lf%lf%lf", &a, &b, &c);
// 第二步:计算
if(fabs(a) < 1e-6) //a为零
{
if(fabs(b) < 1e-6)//b为零
{
if(fabs(c) < 1e-6)//c为零
{
printf("无穷解\n");
}
else
{
printf("无解\n");
}
}
else
{
printf("有一个根:%lf\n", -c / b);
}
}
else
{
delta = b*b - 4*a*c;
if(delta > 1e-6)
{
printf("第一个解:%lf\n", (-b + sqrt(delta)) / 2 / a);
printf("第二个解:%lf\n", (-b - sqrt(delta)) / 2 / a);
}
else if(fabs(delta) < 1e-6)
{
printf("一个解:%lf\n", -b / 2 /a);
}
else
{
printf("第一个复数根,实部:%lf,虚部%lfi\n",
-b / 2 / a, sqrt(-delta) / 2 / a);
printf("第二个复数根,实部:%lf,虚部%lfi\n",
-b / 2 / a, -sqrt(-delta) / 2 / a);
}
}
return 0;
}