求方程ax2+bx+c=0的根,用3个函数分别求当:b2-4ac大于0、等于0,、小于0时的根并输出结果。 从主函数输入a,b,c的值。
时间: 2023-10-06 08:08:28 浏览: 117
已知二元一次方程ax²+bx+c=0(a≠0),编程实现求解方程的根。(分三种情况考虑)
好的,我能明白您的问题。根据您的要求,我准备采用3个函数,分别计算b^2-4ac大于0、等于0、小于0时的根。请您输入a,b,c的值。
主函数代码如下:
```
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c;
printf("请输入a,b,c的值:");
scanf("%lf%lf%lf", &a, &b, &c);
if (b * b - 4 * a * c > 0) {
double x1, x2;
quadratic_equation_with_two_roots(a, b, c, &x1, &x2);
printf("方程的两个根分别为%.2f和%.2f\n", x1, x2);
} else if (b * b - 4 * a * c == 0) {
double x;
quadratic_equation_with_one_root(a, b, c, &x);
printf("方程的根为%.2f\n", x);
} else {
printf("方程无实根\n");
}
return 0;
}
```
下面是实现3个函数的代码:
1、当b^2-4ac大于0,正常情况下方程有两个实根。
```
void quadratic_equation_with_two_roots(double a, double b, double c, double* x1, double* x2)
{
(*x1) = (-b + sqrt(b * b - 4 * a * c)) / (2 * a);
(*x2) = (-b - sqrt(b * b - 4 * a * c)) / (2 * a);
}
```
2、当b^2-4ac等于0,正常情况下方程有一个实根。
```
void quadratic_equation_with_one_root(double a, double b, double c, double* x)
{
(*x) = -b / (2 * a);
}
```
3、当b^2-4ac小于0,正常情况下方程无实根。
输出信息即可。
这样,针对您的问题,我就完成了程序的设计。如果您还有其他问题,欢迎随时向我提问。
阅读全文