帮帮我修改一道C语言初学者题目

改正下列程序中的错误,输入参数a,b,c,求一元二次方程ax²+bx+c=0的根:#include<stdio.h>#include<math.h>intmai... 改正下列程序中的错误,输入参数a,b,c,求一元二次方程ax²+bx+c=0的根:
#include<stdio.h>
#include<math.h>
int main(void)
{
double a,b,c,d;
printf("input a,b,c:");
scanf("%lf,%lf,%lf",&a,&b,&c);
d=b*b-4*a*c;
if(a==0){
if(b==0){
if(c==0)
printf("参数都为零,方程无意义!\n");
else
printf("a和b为0,c不为0,方程不成立\n");
}
else
printf("x=%0.2f\n",-c/b);
}
else
if(d>=0){
printf("x1=%0.2f\n",(-b+sqrt(d)/(2*a));
printf("x2=%0.2f\n",(-b-sqrt(d)/(2*a));
}
else{
printf("x1=%0.2f+%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
printf("x2=%0.2f-%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
}
return 0;
}
有几个错误帮帮我看看我看不出来哦
展开
 我来答
yiyerensheng
2009-11-23 · TA获得超过604个赞
知道小有建树答主
回答量:292
采纳率:100%
帮助的人:389万
展开全部
第21、22行:
printf("x1=%0.2f\n",(-b+sqrt(d)/(2*a));
printf("x2=%0.2f\n",(-b-sqrt(d)/(2*a));
要给为:
printf("x1=%0.2f\n",(-b+sqrt(d)/(2*a)));
printf("x2=%0.2f\n",(-b-sqrt(d)/(2*a)));

或者下面的程序也可以
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,pbs,x1,x2,p,q;
printf("请依次输入二次方程的系数:\n");
scanf("%f,%f,%f",&a,&b,&c);
pbs=b*b-4*a*c;
if(pbs>0)
{
x1=(-b+sqrt(pbs))/(2*a);
x2=(-b-sqrt(pbs))/(2*a);
printf("两个不相等的实跟为:x1=%5.4f,x2=%5.4f\n",x1,x2);
}
else if(pbs==0)
{x1=-b/(2*a);
printf("两个相等的实跟为:x1=x2=%5.4f\n",x1);
}
else
{
p=--b/(2*a);
q=sqrt(-pbs)/(2*a);
printf("两个不相等的虚根为:x1=%5.4f+%5.4fi,x2=%5.4f-%5.4fi\n",p,q,p,q);
}
}
华丽又精明灬福音09
2009-11-23 · TA获得超过660个赞
知道答主
回答量:121
采纳率:0%
帮助的人:112万
展开全部
20 21行少括号。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cgiggle
2009-11-23 · TA获得超过1957个赞
知道大有可为答主
回答量:1996
采纳率:0%
帮助的人:1370万
展开全部
#include<stdio.h>
#include<math.h>
int main(void)
{
double a,b,c,d;
printf("input a,b,c:");
scanf("%lf,%lf,%lf",&a,&b,&c);
d=b*b-4*a*c;
if(a==0){
if(b==0){
if(c==0)
printf("参数都为零,方程无意义!\n");
else
printf("a和b为0,c不为0,方程不成立\n");
}
else
printf("x=%0.2f\n",-c/b);
}
else
if(d>=0){
printf("x1=%0.2f\n",(-b+sqrt(d))/(2*a));
printf("x2=%0.2f\n",(-b-sqrt(d))/(2*a));
}
else{
printf("x1=%0.2f+%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
printf("x2=%0.2f-%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
}
return 0;
}
//修改如上 请验证之
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
慕容痴儿9527
2009-11-23
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部
#include<stdio.h>
#include<math.h>
int main(void)
{
double a,b,c,d;
printf("input a,b,c:");
scanf("%lf%lf%lf",&a,&b,&c);
d=b*b-4*a*c;
if(a==0){
if(b==0){
if(c==0)
printf("参数都为零,方程无意义!\n");
else
printf("a和b为0,c不为0,方程不成立\n");
}
else
printf("x=%0.2f\n",-c/b);
}
else
if(d>=0){
printf("x1=%0.2f\n",(-b+sqrt(d))/(2*a));
printf("x2=%0.2f\n",(-b-sqrt(d))/(2*a));
}
else{
printf("x1=%0.2f+%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
printf("x2=%0.2f-%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
}
return 0;
}
改了scanf和ptintf的地方,但愿能帮到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式