C语言编程中,为什么运行结果总是为0.000000

如下图,C语言编程中,运行结果总是0.000000,0.000000?是代码哪里打错了吗?求高人指点,谢谢谢谢!

最后一句

printf("%lf,%lf\n",&x1,&x2);

改为:

printf("%lf,%lf\n", x1, x2);

&为取地址符,用在scanf的参数前,printf不用。

还要注意当方程无根或一个根时,虚根变量会出现浮点数异常,printf便不会将其打印出来

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-26
scanf("%lf,%lf,%lf", &a, &b, &c);

这一行, 把 %lf 之间的  逗号 去掉

scanf("%lf%lf%lf", &a, &b, &c);

 然后, 

最后一行, 把 &x1, &x2 前的  & 去掉

printf("%lf,%lf\n", x1, x2);

追问

怎么变成了这样噢我的天

追答

最后一行, 把 &x1, &x2 前的 & 去掉

printf("%lf,%lf\n", x1, x2);

本回答被网友采纳
第2个回答  2015-09-26
你最后一句输出写错了,x1,x2前面不要加取址符&追问

追答

说一遍,你怎么定义的输入,你就怎么输入,比如你没改之前输入之间有逗号,那你就用逗号分隔,现在你修改了,没有逗号,就不要加逗号,直接121

第3个回答  2015-09-26
printf("%1f ,1f \n",x1,x2);试试追问

追答

#include
#include

void main()
{
float a,b,c,delt,x1,x2;

printf("输入方程的三个系数:");
scanf("%f%f%f",&a,&b,&c);

delt = b*b-4*a*c;

x1 = (-b+sqrt(delt))/(2*a);
x2 = (-b-sqrt(delt))/(2*a);

printf("方程的解分别为:x1=%.2f x2=%.2f \n",x1,x2);

}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网