输入任意三个系数,求一元二次方程ax2+bx+c=0的根。a、b、c为任意实数。
时间: 2024-10-21 16:12:49 浏览: 81
一元二次方程的解可以使用二次公式来计算,即当给定方程 `ax^2 + bx + c = 0` 时,其解 x 可以表示为:
\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]
这个公式称为求根公式。在C语言中,我们可以编写一个函数来接受a、b和c作为参数,并返回两个解。以下是实现该功能的一个简单例子:
```c
#include <stdio.h>
#include <math.h> // 引入math库用于计算平方根
// 函数声明,计算一元二次方程的根
void quadratic_equation(double a, double b, double c, double* roots);
int main() {
double a, b, c;
printf("请输入一元二次方程的系数a、b和c:\n");
scanf("%lf %lf %lf", &a, &b, &c);
double roots[2]; // 存储两个解
quadratic_equation(a, b, c, roots);
// 输出结果
if (roots[0] != INFINITY && roots[1] != INFINITY) { // 判断是否有效解
printf("方程的解为:%.2lf 和 %.2lf\n", roots[0], roots[1]);
} else {
printf("方程无实数解。\n");
}
return 0;
}
// 定义计算根的函数
void quadratic_equation(double a, double b, double c, double* roots) {
double discriminant = b * b - 4 * a * c;
if (discriminant >= 0) {
roots[0] = (-b + sqrt(discriminant)) / (2 * a);
roots[1] = (-b - sqrt(discriminant)) / (2 * a);
} else {
roots[0] = roots[1] = INFINITY; // 实数解不存在,设置为无穷大
}
}
```
在这个程序中,用户输入一元二次方程的系数,然后函数`quadratic_equation`计算并存储两个解。如果判别式小于零,说明方程没有实数解,我们用`INFINITY`表示。
阅读全文