求方程ax2+bx+c=0的根,用3个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。从主函数输入a,b,c的值。他所用的变量
时间: 2023-11-29 22:18:16 浏览: 42
好的,下面是实现代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double calc_root1(double a, double b, double c)
{
return (-b + sqrt(b * b - 4 * a * c)) / (2 * a);
}
double calc_root2(double a, double b, double c)
{
return (-b - sqrt(b * b - 4 * a * c)) / (2 * a);
}
double calc_root3(double a, double b, double c)
{
return -b / (2 * a);
}
int main()
{
double a, b, c;
printf("请输入a、b、c的值:\n");
scanf("%lf%lf%lf", &a, &b, &c);
double delta = b * b - 4 * a * c;
if(delta > 0)
{
double root1 = calc_root1(a, b, c);
double root2 = calc_root2(a, b, c);
printf("方程的两个根分别为:%lf,%lf\n", root1, root2);
}
else if(delta == 0)
{
double root = calc_root3(a, b, c);
printf("方程的根为:%lf\n", root);
}
else
{
printf("方程无实数根!\n");
}
return 0;
}
```
这段代码的实现思路是,先定义了三个函数calc_root1、calc_root2和calc_root3,分别用来求解方程的两个根和一个根。在主函数中,先从键盘输入方程的系数a、b、c的值,并计算出方程的判别式delta。根据delta的值,分别调用对应的函数来求解方程的根,并输出结果。
需要注意的是,如果方程无实数根,则直接输出提示信息。此外,变量名应具有描述性,能够清晰地表达变量的含义,方便程序的阅读和维护。