问个新手问题,谢谢回答
若已定义x和y为double型变量,则表达式x=1,y=x+3/2的值是请详细点回答!!!
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了
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);//这里是输出表达式的值.
}