求方程a*x*x +bx+c=0的根,用3个函数分别求当:b*b-4ac大于0、等于0和小于0 时的根并输出结果。从主函数输入a,b,c的值。用c语言编写
时间: 2024-11-05 17:29:45 浏览: 33
c代码-求ax平方+bx+c+=0
5星 · 资源好评率100%
在C语言中,我们可以使用条件语句和数学库函数来分别计算一元二次方程`ax^2 + bx + c = 0`的根,根据判别式的性质:若`b * b - 4 * a * c`大于0、等于0或小于0,我们有三种情况:
1. 当判别式大于0(`b * b - 4 * a * c > 0`),方程有两个不同的实数根,可以使用公式`x = [-b ± sqrt(b * b - 4 * a * c)] / (2 * a)`来计算。
2. 当判别式等于0(`b * b - 4 * a * c == 0`),方程有一个重根,即`x = -b / (2 * a)`。
3. 当判别式小于0(`b * b - 4 * a * c < 0`),方程无实数根,但是有复数解,这里通常简单地表示为"无实根"。
以下是C语言的代码示例:
```c
#include <stdio.h>
#include <math.h>
void solveQuadratic(double a, double b, double c) {
double discriminant = b * b - 4 * a * c;
double root1, root2;
if (discriminant > 0) {
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("两个不同的实数根:%.2lf 和 %.2lf\n", root1, root2);
} else if (discriminant == 0) {
root1 = -b / (2 * a);
printf("一个重根:%.2lf\n", root1);
} else {
printf("无实根\n");
}
}
int main() {
double a, b, c;
printf("请输入系数a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
solveQuadratic(a, b, c);
return 0;
}
```
阅读全文