c语言编程求解一元二次方程
时间: 2024-09-27 15:02:48 浏览: 36
C语言下的 一元二次方程 求解
3星 · 编辑精心推荐
在 C 语言中,求解一元二次方程同样涉及到使用数学库函数来处理浮点数运算。这里是一个基本的示例代码,它会计算给定的一元二次方程 `ax^2 + bx + c = 0` 的根,假设用户输入了 a、b 和 c 的值,且判别式 `D = b^2 - 4ac` 大于零:
```c
#include <stdio.h>
#include <math.h>
void quadratic_equation(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("两个实数根为: %.2lf 和 %.2lf\n", root1, root2);
} else if (discriminant == 0) {
double root = -b / (2 * a);
printf("唯一的实数根为: %.2lf\n", root);
} else {
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("无实数根,有两个共轭复数根: %.2lf + %.2lfi 和 %.2lf - %.2lfi\n",
realPart, imaginaryPart, realPart, imaginaryPart);
}
}
int main() {
double a, b, c;
printf("请输入系数 a: ");
scanf("%lf", &a);
printf("请输入系数 b: ");
scanf("%lf", &b);
printf("请输入系数 c: ");
scanf("%lf", &c);
quadratic_equation(a, b, c);
return 0;
}
```
这个程序首先计算判别式,然后根据其正负情况分别输出对应的结果。用户需要通过 `scanf` 函数输入三个系数,然后调用 `quadratic_equation` 函数求解。
阅读全文