55问答网
所有问题
x=1,y=2,z=3; x+=y+=z; printf("3:%d\n",z/=x++);为什么等于0?
如题所述
举报该问题
推荐答案 2020-03-14
因为x+=y+=z,相当于
{y=y+z=5;
x=x+y=6;}
而z/=x++即
x++,x=7;
z/x=3/7,取整为零
(注意赋值语句从右向左算)
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/F4I8RG4I8QFcIILI8FR.html
其他回答
第1个回答 2020-03-14
z/=x++得出数据小于1
相似回答
...
x=1,y=2,z=0;
if
(x=
2
)z=x
,
x=y
,y
=z;
printf(
"
%d
,%d\n",x,y
);
}...
答:
改成
z=x;x=y;
y
=z;
后 程序执行如下 先给x赋值
1,y
赋值
2,z
赋值0;判断x=2是真是假,为真执行下面的语句 z=x;x=y;y=z;将x被赋值为2的值赋值给z,将y等于2的值赋值给x,将
z等于
2的值赋值给y 结果输出
x=2,y=2;
...
=2;
z=x++
+
y;
printf(
“
%d
%d %d \n”
,x,y,z);
怎么解释。麻烦
一
个...
答:
z=x++
+y;表示
z=(x++)+y;
所以输出
:2
2
3
...
y=3,x=3,z=1;
printf(%d
%d\
n,
(++x
, y++),z+2);
}
答:
逗号符,表示对这两个表达式执行逗号运算…
(x,y)
这个表达式的值为y的值
C语言中的
printf(
"
%d,%d,%d
\n",z++,++
z,z++);
问题
答:
在你的编译器上最终结果会是6 6 6,因为从右往左计算,但是凡是带前置自增运算符的都会在最后被赋值。同样地:int
z = 3;printf(
"
%d
%d %d\n", ++z, ++
z,z++);
这段语句的结果会是6 6 3,因为最后一个参数不会等到最后再赋值,而前两个会。总之不管怎样,这种写法都是很不好的,楼主...
...
y=3,x=3,z=1;
printf(
"
%d%d
\n",(
++x,y++),z+2);
} printf语句是怎么运 ...
答:
printf
运行结果为 3
,3
第二个%d 是
z+2
为3 第一个%d 是 (++
x
,y++)
表示 先运行 ++x , x变为4 ,然后输出 y 的值为3 ,在运行 y++ ,y 为4;
大家正在搜
相关问题
main() { int X=1,y=2,z=3; x+=y...
C语言: int x,y,z; x=3;y=2;z=0; x...
main {int x=1,y=2,z=3; z+=x>y?...
x+=y+=z; printf("%d\n",z+=x>y?...
为什么int y=3,x=3,z=1; printf("%d...
int x=3,y=3,z=1 printf(“x=%d,y...
17.执行以下程序的输出是? main() {int x=1...
main() { int x,y,z; x=y=1; z=x...