c 程序 :求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。

我已经写完差不多的程序了如下:#include<stdio.h>#include<math.h>voiddeltaZero(doublea,doubleb,doublec... 我已经写完差不多的程序了 如下:
#include<stdio.h>
#include<math.h>

void deltaZero(double a,double b,double c)
{
double ans=-b/(2*a);
printf("x1=x2=%lf\n",ans);
}

void deltaLargerZero(double a,double b,double c)
{
double ans1,ans2,d;
d=b*b-4*a*c;
ans1 = (-b+sqrt(d))/(2*a);
ans2 = (-b-sqrt(d))/(2*a);
printf("x1=%lf,x2=%lf\n",ans1,ans2);
}

void deltaLessZero(double a,double b,double c)
{
double real,imar,d;
d=b*b-4*a*c;
real = -b/(2*a);
imar = sqrt(-d)/(2*a);
printf("x1=%lf+%lfi,x2=%lf-%lfi\n",real,imar,real,imar);
}
void main()
{
double a,b,c,x;
double d;
printf("please input a,b,c:");
scanf("%lf%lf%lf",&a,&b,&c);
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);
}
他还有一个要求就是考虑当a=0时的情况,此时方程退化为一次方程。这个要在程序中体现出来应该怎么写 加在哪?谢谢啦 帮帮忙
展开
匿名用户
2012-06-11
展开全部
在主函数判断d之前加个判断
if(a==0){}
else if
{if(d==0)
else if()······
}
y63125471
推荐于2017-12-16 · TA获得超过603个赞
知道小有建树答主
回答量:234
采纳率:0%
帮助的人:227万
展开全部
主函数中加个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);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式