求一元二次方程2x2+7x–5=0的两个实数解。C语言
时间: 2024-10-28 22:06:42 浏览: 26
在C语言中,求解一元二次方程一般需要使用数学库函数,例如`sqrt()`和一些辅助计算。这里我们可以使用公式法,但为了简化,我们将使用数值近似解法,其中最常用的是牛顿迭代法。由于C标准库并没有内置的算法,我们需要自定义函数来计算根。下面是一个使用牛顿法的例子:
```c
#include <stdio.h>
#include <math.h>
double quadraticRoots(double a, double b, double c) {
double x1 = (-b + sqrt(b * b - 4 * a * c)) / (2 * a);
double x2 = (-b - sqrt(b * b - 4 * a * c)) / (2 * a);
return x1, x2;
}
int main() {
double a = 2.0, b = 7.0, c = -5.0;
double root1, root2;
root1 = quadraticRoots(a, b, c)[0];
root2 = quadraticRoots(a, b, c)[1];
printf("一元二次方程 %lfx^2 + %lfx - %lf = 0 的两个实数解分别为 %.2f 和 %.2f.\n",
a, b, c, root1, root2);
return 0;
}
```
这个程序会计算出方程 \(2x^2 + 7x - 5 = 0\) 的两个实数解,并将结果保留两位小数。
注意:上述代码依赖于`math.h`库中的`sqrt()`函数,确保编译环境支持该库。
阅读全文