输入一元二次方程ax^2+bx+c=0的系数a、b、c。 假设输入始终满足b^2-4ac>0且a不等于0,计算并输出该方程的两个实根。 C语言中计算非负实数的平方根函数: double sqrt(double); 头文件:math.h。
时间: 2024-10-18 22:14:15 浏览: 87
在C语言中,为了计算给定的一元二次方程 \( ax^2 + bx + c = 0 \) 的两个实根,你需要首先检查判别式 \( b^2 - 4ac \) 是否大于0,因为只有当判别式为正时,方程才有两个不同的实数解。如果满足条件,你可以使用`math.h`头文件中的`sqrt()`函数来计算根。
以下是一个简单的C程序片段,它实现了这个功能:
```c
#include <stdio.h>
#include <math.h>
double quadraticRoots(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 {
printf("方程无实数根(判别式小于零)。");
}
}
int main() {
double a, b, c;
printf("请输入一元二次方程的系数a, b, c:\n");
scanf("%lf %lf %lf", &a, &b, &c);
// 确保a不为0
if (a == 0) {
printf("错误:一元二次方程的系数a不能为0。\n");
} else {
quadraticRoots(a, b, c);
}
return 0;
}
```
当你运行这个程序时,会提示用户输入a、b和c的值,并计算出相应的实数根。注意,这个程序假定了用户提供的系数有效,并且处理了a为0的情况。如果需要更完整的错误检查,可以添加更多的边界条件检查。
阅读全文
相关推荐


















