求方程ax2+bx+c=0的根,分别用三个函数分别求档b2-4ac大于0、等于0、小于0时的根。(使用全局变量)。在函数中注释说明定义本函数时的四要素:函数功能、函数名、函数返回值类型、函数参数列表。
时间: 2024-02-11 19:08:37 浏览: 50
函数功能:求解一元二次方程ax^2+bx+c=0的根。
函数名:solve_quadratic_equation
函数返回值类型:无返回值,使用全局变量存储根的值。
函数参数列表:三个参数分别表示方程的系数a、b、c。
以下是代码实现:
```
#include <stdio.h>
#include <math.h>
double root1, root2; // 存储方程的两个根
// 求解b^2-4ac大于0时的根
void solve_positive(double a, double b, double c) {
double delta = b * b - 4 * a * c;
if (delta > 0) {
root1 = (-b + sqrt(delta)) / (2 * a);
root2 = (-b - sqrt(delta)) / (2 * a);
}
}
// 求解b^2-4ac等于0时的根
void solve_zero(double a, double b, double c) {
double delta = b * b - 4 * a * c;
if (delta == 0) {
root1 = root2 = -b / (2 * a);
}
}
// 求解b^2-4ac小于0时的根
void solve_negative(double a, double b, double c) {
double delta = b * b - 4 * a * c;
if (delta < 0) {
// 虚根,不做处理
}
}
int main() {
double a, b, c;
printf("请输入一元二次方程的系数a、b、c:");
scanf("%lf%lf%lf", &a, &b, &c);
solve_positive(a, b, c); // 求解b^2-4ac大于0时的根
printf("b^2-4ac>0时的根为:%.2f, %.2f\n", root1, root2);
solve_zero(a, b, c); // 求解b^2-4ac等于0时的根
printf("b^2-4ac=0时的根为:%.2f, %.2f\n", root1, root2);
solve_negative(a, b, c); // 求解b^2-4ac小于0时的根
printf("b^2-4ac<0时的根为:%.2f, %.2f\n", root1, root2);
return 0;
}
```
阅读全文