永发信息网

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

答案:2  悬赏:0  手机版
解决时间 2021-02-05 00:57
  • 提问者网友:温旧梦泪无声
  • 2021-02-04 14:03
#include
#include
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);

}
最佳答案
  • 五星知识达人网友:话散在刀尖上
  • 2021-02-04 14:27
感觉没错啊,除了那个double读入要用%lf,输出要用%f, 其他我没发现有什么错
全部回答
  • 1楼网友:拾荒鲤
  • 2021-02-04 16:05
主函数中加个if条件判断啦!!! if(a==0) { if(b==0) printf("error!\n"); else printf("x=%.2lf\n",-c/b); } else{ d=b*b-4*a*c; if(d==0) deltazero(a,b,c); else if(d>0) deltalargerzero(a,b,c); else if(d<0) deltalesszero(a,b,c); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯