求一元二次方程的解:
明白一元二次方程解是由b*b-4*a*c决定
程序代码如下:
#define EXP 0.000001 //自定义允许的误差范围
#include <math.h>
#include <stdio.h>
int main()
{
double a, b, c;
double k;
double x1, x2;
scanf("%lf %lf %lf", &a, &b, &c); //输入a,b,c的值
if (a==0.0)
printf("此方程不是一元二次方程");
else
{
k = b*b - 4 * a*c;
if ((k <= -EXP) && (k >= EXP)) //k在定义范围EXP内认为k==0
{
printf("x = %lf\n", (-b) / (2 * a)); //输出x的值
}
else if(k>0.0)
{
x1 = (-b + sqrt(k)) / (2 * a);
x2 = (-b - sqrt(k)) / (2 * a);
printf("x1=%lf x2=%lf", x1, x2);
}
else
{
printf("方程有两个共轭的复根"); //k<0时,有两个共轭复根
}
}
system("pause");
return 0;
}
运行结果如下: