用C语言编写程序求方程ax2+bx+c=0的根,用3个函数分别求当:b2-4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a、b、c 的值。
时间: 2023-10-06 21:06:41 浏览: 287
c语言求三次方程的根程序的设计.doc
以下是一个可以实现您要求的程序代码:
```c
#include <stdio.h>
#include <math.h>
void roots1(double a, double b, double c) {
double x1, x2, d;
d = b * b - 4 * a * c;
x1 = (-b + sqrt(d)) / (2 * a);
x2 = (-b - sqrt(d)) / (2 * a);
printf("当b2-4ac大于0时,方程的两个根为:x1 = %f, x2 = %f\n", x1, x2);
}
void roots2(double a, double b, double c) {
double x;
x = -b / (2 * a);
printf("当b2-4ac等于0时,方程的唯一根为:%f\n", x);
}
void roots3(double a, double b, double c) {
double p, q;
p = -b / (2 * a);
q = sqrt(4 * a * c - b * b) / (2 * a);
printf("当b2-4ac小于0时,方程的两个虚根为:x1 = %f + %fi, x2 = %f - %fi\n", p, q, p, q);
}
int main() {
double a, b, c, d;
printf("请输入方程的系数a、b、c:\n");
scanf("%lf%lf%lf", &a, &b, &c);
d = b * b - 4 * a * c;
if (d > 0) {
roots1(a, b, c);
} else if (d == 0) {
roots2(a, b, c);
} else {
roots3(a, b, c);
}
return 0;
}
```
在这个程序中,我们定义了三个函数 `roots1`、`roots2` 和 `roots3`,分别用于求解方程 `ax2+bx+c=0` 当 `b2-4ac` 大于 0、等于 0 和小于 0 时的根。具体来说,`roots1` 函数计算出方程的两个实根,`roots2` 函数计算出方程的唯一实根,`roots3` 函数计算出方程的两个虚根。在 `main` 函数中,我们使用 `scanf` 函数让用户输入方程的系数 `a`、`b`、`c`,然后根据 `b2-4ac` 的值选择调用对应的函数,输出方程的根。
希望这个程序能够解决您的问题。
阅读全文