本关任务:编写一个程序,求一元二次方程 ax2+bx+c=0的根,假设 a,b,c 由用户输入,且Δ>=0。 要求:最后输出的根保留小数点后两位。c语言
时间: 2024-12-14 14:17:37 浏览: 55
为了编写一个C语言程序来解决这个问题,我们可以使用公式法来计算一元二次方程的解。首先,我们需要检查判别式Δ=b² - 4ac是否大于等于0,因为只有当Δ>=0时,方程才有实数解。以下是C代码的一个例子:
```c
#include <stdio.h>
#include <math.h> // 引入数学库,用于浮点数运算
// 函数声明,用于计算二次方程的解
void calculateRoots(float a, float b, float c);
int main() {
float a, b, c;
// 用户输入系数a, b, c
printf("请输入一元二次方程的系数a, b, c:\n");
scanf("%f %f %f", &a, &b, &c);
// 检查判别式
float discriminant = b * b - 4 * a * c;
if (discriminant >= 0) {
calculateRoots(a, b, c); // 如果有解,调用函数计算并显示结果
} else {
printf("方程无实数解。\n");
}
return 0;
}
// 计算并打印根,保留两位小数
void calculateRoots(float a, float b, float c) {
float root1, root2;
// 根据公式 x = [-b ± sqrt(b^2 - 4ac)] / 2a 计算根
double sqrtDiscriminant = sqrt(discriminant);
root1 = (-b + sqrtDiscriminant) / (2 * a);
root2 = (-b - sqrtDiscriminant) / (2 * a);
printf("方程的两个实数根为: %.2f 和 %.2f\n", root1, root2);
}
```
运行这个程序时,用户会按照提示输入方程的系数,然后程序会检查判别式,如果大于等于0则计算并显示根,小于0则告知无实数解。根会被保留到小数点后两位。
阅读全文
相关推荐


















