一元二次方程ax^2+bx+c=0的求解有下列几种情况:
1.当a=0时,该方程不是一元二次方程的解。
2.当a≠0时,该方程是一元二次方程。
(1)当b^2-4ac=0时,只有一个解;
(2)当b^2-4ac>0时,有两个不相同的解;
(3)当b^2-4ac<0时,该方程无解。
test.c
#define _CRT_SECURE_NO_WARNINGS 1
//求一元二次方程的解
#define EXP 0.000000000000001
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
double a = 0.0, b = 0.0, c = 0.0;
scanf("%lf %lf %lf", &a, &b, &c);
if ((a > -EXP) && (a < EXP))
{
printf("该方程不是一元二次\n");
}
else
{
double disc = b*b - 4 * a*c;
if ((disc>-EXP) && (disc < EXP))
{
printf("一个解:%lf\n", -b / (2 * a));
}
else if (disc >= EXP)
{
printf("两个解:%lf %lf\n", (-b + disc) / (2 * a), (-b - disc) / (2 * a));
}
else
{
printf("无解\n");
}
}
system("pause");
return 0;
}
运行结果如下:
(1)不是一元二次方程
(2)一个解
(3)两个解
(4)无解