请教C语言的高手

#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 。还是这样,是不是哪里出错了。

#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语句里面没有逗号,输入的时候就不能用逗号隔开
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-02-27
你输入浮点数试试。
第2个回答  2013-02-27
没有问题的啊,我用gcc编译的
相似回答