/*求方程ax^2+bx+c=0的根,用3个函数分别求当b^2-4ac大于0、等于0和小于0时的根,并输出结果。
从主函数输入a, b, c的值。*/
#include <STDIO.H>
#include <MATH.H>
//大于0的情况
void fun1(float a,float b,float d)
{
float x1,x2;
x1 = (-b + sqrt(d))/(2 * a);
x2 = (-b - sqrt(d))/(2 * a);
printf("此方程的解是:%f和%f\n",x1,x2);
}
//等于0的情况
void fun2(float a,float b,float d)
{
float x1;
x1 = (-b) / (2 * a);
printf("此方程的解是:%f\n",x1);
}
//小于0的情况
void fun3()
{
printf("此方程无解!\n");
}
int main()
{
float a,b,c,d;
printf("请输入方程:\n");
printf("a是:");
scanf("%f",&a);
printf("b是:");
scanf("%f",&b);
printf("c是:");
scanf("%f",&c);
d = pow(b,2) - (4 * a * c);
if (d > 0)
{
fun1(a,b,d);
}
if (d == 0)
{
fun2(a,b,d);
}
if (d < 0)
{
fun3();
}
}
谭浩强C程序设计(第四版)p218第2题