c输出一元二次方程根
时间: 2024-10-18 14:12:10 浏览: 24
在C语言中计算一元二次方程的根通常涉及到求解ax² + bx + c = 0这样的方程。可以使用公式法,即判别式Δ = b² - 4ac,根据判别式的正负情况来确定根的性质:
- 当Δ > 0时,有两个不相等的实数根,公式为 x1 = (-b + √Δ) / (2a) 和 x2 = (-b - √Δ) / (2a)。
- 当Δ = 0时,有一个重根(也就是两个相同的实数根),x = -b / (2a)。
- 当Δ < 0时,没有实数根,但有复数根,这时需要借助复数运算库如GMP(GNU Multiple Precision Arithmetic Library)。
下面是一个简单的C程序示例,用于计算给定系数的一元二次方程的根:
```c
#include <stdio.h>
#include <math.h>
void quadratic_roots(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("有两个不相等的实数根:%.2f 和 %.2f\n", root1, root2);
} else if (discriminant == 0) {
double root = -b / (2 * a);
printf("有一个重根:%.2f\n", root);
} else {
double real_part = -b / (2 * a);
double imaginary_part = sqrt(-discriminant) / (2 * a);
printf("无实数根,有复数根:%.2f + %.2fi\n", real_part, imaginary_part);
}
}
int main() {
double a, b, c;
printf("请输入一元二次方程的系数 a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
quadratic_roots(a, b, c);
return 0;
}
```
阅读全文