(2)编写一个c语言程序,输入系数a,b,c,求一元二次方程ax2+bx+c=0的根, 包括主函数和如下子函数。 ① 判断a是否为零。 ② 计算判别式。 ③ 计算根的情况。 ④ 输出根。
时间: 2024-11-18 16:17:53 浏览: 3
Java Application和Applet两种方式求一元二次方程ax2+bx+c=0的根
5星 · 资源好评率100%
为了编写一个C语言程序,用于计算一元二次方程的根,我们需要创建一个主函数,并包含所需的子函数。这里是一个简单的示例:
```c
#include <stdio.h>
#include <math.h>
// 子函数: 判断a是否为零
int is_zero(int a) {
return (a == 0);
}
// 子函数: 计算判别式
double calculate_discriminant(int a, int b, int c) {
return (b * b - 4 * a * c);
}
// 子函数: 根据判别式的值确定根的情况并计算根
void solve_quadratic(int a, int b, int c) {
double discriminant = calculate_discriminant(a, b, c);
if (is_zero(a)) {
printf("这是一个线性方程,没有根。\n");
} else if (discriminant > 0) {
double root1 = (-b + sqrt(discriminant)) / (2 * a);
double root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("方程有两个实数根: %.2f 和 %.2f.\n", root1, root2);
} else if (discriminant == 0) {
double root = -b / (2 * a);
printf("方程有一个重根: %.2f.\n", root);
} else {
printf("方程有两个复数根。\n");
}
}
// 主函数
int main() {
int a, b, c;
// 输入系数
printf("请输入一元二次方程的系数 a, b, c: ");
scanf("%d %d %d", &a, &b, &c);
// 调用子函数求解
solve_quadratic(a, b, c);
return 0;
}
```
在这个程序中,用户首先输入一元二次方程的系数,然后主函数调用`solve_quadratic`函数处理方程。子函数根据系数判断方程类型,并根据判别式计算根。
阅读全文