输入a,b,c三个参数,求一元二次方程ax2+bx+c=0的根(虚根也要求) 要求:(1)a,b,c的值从键盘输入,并输出运算结果,小数点2位。(2)已知输入时a的值不为零
时间: 2024-12-16 22:16:46 浏览: 4
Python编程实现数学运算求一元二次方程的实根算法示例
要计算一元二次方程 \( ax^2 + bx + c = 0 \) 的根,我们需要使用公式:
\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]
如果判别式 \( b^2 - 4ac \) 是正数,那么有两个实数根;如果是零,有一个重根;如果是负数,有两个复数根(即虚根)。
以下是一个简单的C程序,用于处理这种情况并保留两个小数位:
```c
#include <stdio.h>
#include <math.h>
// 函数声明
void calculateRoots(double a, double b, double c);
int main() {
double a, b, c;
// 输入系数
printf("请输入a, b, c的值(a 不为零):\n");
scanf("%lf %lf %lf", &a, &b, &c);
// 计算并打印结果
calculateRoots(a, b, c);
return 0;
}
// 计算根的函数
void calculateRoots(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\n", root1);
printf("第二个根: %.2f\n", root2);
} else { // 虚根
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("两个虚根: %.2f + %.2fi 和 %.2f - %.2fi\n",
realPart, imaginaryPart, realPart, -imaginaryPart);
}
}
```
在这个程序中,`calculateRoots` 函数负责计算并输出根。主函数则负责获取用户输入和调用这个函数。
运行程序后,按照提示输入 `a`, `b`, `c` 的值,程序将计算并显示相应的根,包括实根和虚根(如果有)。如果输入的 `a` 不为零,计算不会有问题。
阅读全文