当前位置: 代码迷 >> C语言 >> 问个新手问题,谢谢回答
  详细解决方案

问个新手问题,谢谢回答

热度:255   发布时间:2006-09-25 19:49:56.0
问个新手问题,谢谢回答
若已定义x和y为double型变量,则表达式x=1,y=x+3/2的值是


请详细点回答!!!
搜索更多相关的解决方案: double  表达式  

----------------解决方案--------------------------------------------------------
大概是1.000000吧
----------------解决方案--------------------------------------------------------

c语言在不同的编译器中的特性是不一样的.这个问题主要是逗号表达式的问题:逗号表达式的最后结果是最右边的一个表达式的值,所以该问题中最后的输出应该是表达式"y=x+3/2"的值.我用的编译器中把3和2看成是整形,所以3/2的结果是1,即总的输出是1+1=2,输出为2.000000
如果你写成y=x+3.0/2那么结果就是2.500000了,这个时候把3.0看成了double了


----------------解决方案--------------------------------------------------------
晕!!! 我用TC做出来是0,是不是做错了,有没有人告诉我
----------------解决方案--------------------------------------------------------

3楼的解释是对的.我觉得你可能是弄错类型了.
楼主,你测试一下.
/*TC*/
#include<stdio.h>
main()
{
double x,y,z;
z=(x=1,y=x+3/2);
printf("%lf\n",x=1,y=x+3/2);//注意这里是输出x的值
printf("%lf\n",z);//这里是输出表达式的值.

}


----------------解决方案--------------------------------------------------------

good luck....


----------------解决方案--------------------------------------------------------
最后的教训是,在计算时如果用了double型,就最好把数值常数也表示成double型,不然很容易出错误
----------------解决方案--------------------------------------------------------
太感谢了!!!
----------------解决方案--------------------------------------------------------
  相关解决方案