一个c语言问题~~~~~~

这是谭浩强主编的《c语言程序设计》第四版里的第四章第一个范例是求一个二元方程式的解我是一字不变的把源程序写下来调试未报错但运行时得到的结果和预期得不一样程序如下:#inc... 这是 谭浩强主编的《c语言程序设计》第四版里的第四章第一个范例
是求一个二元方程式的解 我是一字不变的把源程序写下来 调试未报错
但运行时得到的结果和预期得不一样 程序如下:
#include<stdio.h>
#include<math.h>
int main()
{double a,b,c,x1,x2,p,q,disc;
scanf("lf% lf% lf%",&a,&b,&c);
disc=b*b-4*a*c;
if(disc<0)
printf("this equation hasn't real roots\n");
else
{p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("the real roots :%7.2f \n%7.2f",x1,x2);
}
return 0;
}
在输入 6 3 1 分别给a b c 赋值的时候 会输出 this equation hasn't real roots
可是再输入 2 4 1时却还是显示 this equation hasn't real roots
就好像是else 子语句没执行一样 不知道问什么或出现这种情况 求高手解释 谢谢!!!
展开
 我来答
1239388231
2011-12-08 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:103万
展开全部
#include<stdio.h>
#include<math.h>
int main()
{double a,b,c,x1,x2,p,q,disc;
scanf("%lf %lf %lf",&a,&b,&c);
disc=b*b-4*a*c;
if(disc<0)
printf("this equation hasn't real roots\n");
else
{p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("the real roots :%7.2f \n%7.2f",x1,x2);
}
return 0;
}
你把scanf打错了应该是scanf("%lf %lf %lf",&a,&b,&c);
而不是scanf("lf% lf% lf%",&a,&b,&c);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
道上辖c5736
2011-12-08 · TA获得超过126个赞
知道答主
回答量:114
采纳率:0%
帮助的人:99.9万
展开全部
int main()
{double a,b,c,x1,x2,p,q,disc;
scanf("lf% lf% lf%",&a,&b,&c); ///////////// %写前面......
disc=b*b-4*a*c;
if(disc<0)
printf("this equation hasn't real roots\n");
else
{p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("the real roots :%7.2f \n%7.2f",x1,x2);
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
全场5折oJ
2011-12-08 · TA获得超过425个赞
知道小有建树答主
回答量:218
采纳率:100%
帮助的人:130万
展开全部
你是哪个环境??????有些环境的严格性很强!

%lf长浮点型数据输出格式.

数据类型为 long double

long double a,b,c,x1,x2,p,q,disc;

scanf("%lf %lf %lf",&a,&b,&c);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
douniwan166
2011-12-10
知道答主
回答量:3
采纳率:0%
帮助的人:4921
展开全部
小错,只是输入格式弄错而已,%lf 而不是lf%
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式