请教C语言的高手

#include<stdio.h>voidmain(){floata,b,c,x1,x2,disc;printf("inputabc:");scanf(“%f%f%f",... #include<stdio.h>
void main()
{ float a,b,c,x1,x2,disc;
printf("input a b c:");
scanf(“%f%f%f",&a,&b,&c);
if(fabs(a)<1e-6)
printf("The question is not a quadratic");
else
{ disc=b*b-4*a*c;
if(disc<0)
printf("The question has not real root");
else
if(fabs(disc)<1e-6)
printf("The question has two equal roots: %8.4f",-b/(2*a));
else
{ x1=(-b+sqrt(disc))/(2*a);
x2=(-b+sqrt(disc))/(2*a);
printf("The question has distinct real roots: %8.4f,%8.4f,x1,x2");
}
}
}
这个程序应该没问题的,但是我输入了1,-2,1。应该是能得出结果的,但显示The question has not real root,试了个1,-2,-4 。还是这样,是不是哪里出错了。
展开
 我来答
颜宇0228
2013-02-27
知道答主
回答量:21
采纳率:0%
帮助的人:17.2万
展开全部
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,x1,x2,disc;
printf("input a b c:");
scanf("%f%f%f",&a,&b,&c);
if(fabs(a)<1e-6)
printf("The question is not a quadratic");
else
{
disc=b*b-4*a*c;
if(disc<0)
printf("The question has not real root");
else if(fabs(disc)<1e-6)
printf("The question has two equal roots: %8.4f",-b/(2*a));
else
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("The question has distinct real roots: %8.4f,%8.4f",x1,x2);
}
}
}
看了一下 是求根的吧。。这个可能是你输入的时候出错了,还有我改了几个地方,如果你要输入“1,-2,1”就是你的结果,要输入“1 -2 1”就对了 你看看你的scanf语句里面没有逗号,输入的时候就不能用逗号隔开
3147cqg
2013-02-27 · TA获得超过580个赞
知道小有建树答主
回答量:555
采纳率:37%
帮助的人:284万
展开全部
你输入浮点数试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
世界很大我要去看看
2013-02-27 · TA获得超过188个赞
知道答主
回答量:83
采纳率:0%
帮助的人:40.6万
展开全部
没有问题的啊,我用gcc编译的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式