#include<stdio.h> void main() { int x,y,z,t; x=y=z=1; t=++x||++y&&++z; p

#include<stdio.h>voidmain(){intx,y,z,t;x=y=z=1;t=++x||++y&&++z;printf("x=%dy=%dz=%dt=... #include<stdio.h>
void main()
{
int x,y,z,t;
x=y=z=1;
t=++x||++y&&++z;
printf("x=%dy=%dz=%dt=%d\n",x,y,z,t);
}
求解为啥结果是x=2y=1z=1t=1
而且将第6行修改为
t=--x||--y&&--z;
时输出的是x=0y=0z=1t=0
展开
 我来答
听不清啊
高粉答主

2017-11-25 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
当判断++x时,x值为2,已经为真,所以||后面的表达式就不需再判断,整个表达式的值为1(t=1)
结果是x=2y=1z=1t=1
将第6行修改为
t=--x||--y&&--z;
当判断++x时,x值为0,即假,所以||后面的表达式需继续判断。--y的值为0因为后面是&&,所以后半部分的值为0。所以,整个表达式的值为0(t=0)
输出的是x=0y=0z=1t=0
更多追问追答
追问
x=2y=1z=1t=1是怎么得出的。。。
追答
因为先有x=y=z=1
再有x++
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式