用C语言编程计算一元二次方程的根
时间: 2024-11-16 13:20:10 浏览: 3
C语言程序设计-程序举例求一元二次方程根.pptx
计算一元二次方程的根通常使用公式法或者数值解法(如牛顿迭代法)。这里我们介绍如何使用C语言编程来求解简单的二次方程,也就是形如 `ax^2 + bx + c = 0` 的方程。
我们可以使用二次公式来直接计算根,其公式为:
\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]
下面是对应的C语言代码实现:
```c
#include <stdio.h>
#include <math.h> // 包含数学库,用于 sqrt 函数
// 定义函数,参数为 a, b, c
void quadratic_solution(double a, double b, double c) {
double discriminant = b * b - 4 * a * c; // 计算判别式
if (discriminant >= 0) { // 当判别式非负时有实数根
double root1 = (-b + sqrt(discriminant)) / (2 * a);
double root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("两个实数根:\n");
printf("x1 = %.2lf\n", root1);
printf("x2 = %.2lf\n", root2);
} else { // 当判别式小于0时,有两个复数根
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("两个复数根:\n");
printf("x1 = %.2lf + %.2lfi\n", realPart, imaginaryPart);
printf("x2 = %.2lf - %.2lfi\n", realPart, imaginaryPart);
}
}
int main() {
double a, b, c;
printf("请输入二次方程的系数(a, b, c): ");
scanf("%lf %lf %lf", &a, &b, &c);
quadratic_solution(a, b, c); // 调用求解函数
return 0;
}
```
在这个程序中,首先从用户获取三个系数,然后调用 `quadratic_solution` 函数计算并打印根。如果判别式大于等于0,结果为两个实数根;否则,为一对共轭复数根。
阅读全文