c语言 求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac大于0、等于0和小于0时的根,不知道哪错了啊

#include<stdio.h>
#include<math.h>
void fun1(double a, double b, double c)

{
double k=-b/(2*a);

printf("x1=x2=%lf\n",k);

}

void fun2(double a, double b, double c)

{
double d,j1,j2;
d=b*b-4*a*c;
j1=(-b+sqrt(d))/(2*a);
j2=(-b-sqrt(d))/(2*a);

printf("x1=%lf\n",j1);
printf("x2=%lf\n",j2);
}
void fun3(double a, double b, double c)
{
double x3,x4,d;
d=b*b-4*a*c;
x3=-b/(2*a);
x4=sqrt(-d)/(2*a);
printf("x1=%f+%fi\n",x3,x4);
printf("x2=%f-%fi\n",x3,x4);
}
void main()
{

double a,b,c,d;
printf("please enter a,b,c:");
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;

if(a==0)
{
printf("erro!enter again\n");
return;
}

if (d==0) fun1(a, b, c);
else if (d>0) fun2(a, b, c);
else fun3(a, b, c);

}

感觉没错啊,除了那个double读入要用%lf,输出要用%f, 其他我没发现有什么错追问

我试了一下输出都是同一个值

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网