如何使用C语言编程求方程二x^2-3 x- 6=0的根。
时间: 2024-11-03 19:17:37 浏览: 4
计算机二级c语言资料-计算机二级c语言编程练习题之利用迭代方法求方程实根.zip
在C语言中,可以使用数值方法来近似解一元二次方程,例如牛顿迭代法或者使用标准库函数`sqrt()`和`fmod()`。这里我将给出一个基础的示例,展示如何使用公式法直接计算根,因为对于简单的二次方程,它是最简单直观的。
```c
#include <stdio.h>
#include <math.h>
// 函数声明
double quadratic(double a, double b, double c);
int main() {
// 定义系数
double a = 2.0, b = -3.0, c = - 4 * a * c;
if (discriminant > 0) { // 两个实数根
double root1 = (-b + sqrt(discriminant)) / (2 * a);
double root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("方程有两个实根:\n%.2lf 和 %.2lf\n", root1, root2);
} else if (discriminant == 0) { // 一个实数根
double root = -b / (2 * a);
printf("方程有一个重根:\n%.2lf\n", root);
} else { // 两个复数根
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("方程有两个共轭复数根:\n%.2lf + %.2fi 和 %.2lf - %.2fi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}
return 0;
}
// 计算二次方程的根
double quadratic(double a, double b, double c) {
return (-b + sqrt(b*b - 4*a*c)) / (2*a); // 只取正根
}
```
在这个程序中,我们首先计算了判别式的值,然后根据判别式的正负情况判断方程有几个根以及它们的形式,并打印出来。注意,`quadratic`函数只返回其中一个根,实际应用中若需要两个根,应考虑复数处理。
阅读全文