idea窗口最大化快捷键:C语言 求结果?

来源:百度文库 编辑:高校问答 时间:2024/04/24 02:07:23
main()
{
int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d",x,y,z);
}我怎么能得出 3 2 0呢?

结果是对的
这里要清楚一个问题,就是++i,与i++,的问题(--类似)
++在前是先进行++运算,在后是先用i进行运算,再++的

现在分析你的题目
第一步:
z-->0就是先3>0,(而z到下一步已经变成2了);
++x就是x变成了1再比较,当然也成立。y成了4

第二步:2>0&&2<5 y成了3

第三步: 1>0&&3<5 y成了2

第四步:0>0&&4<5不成立

得出x=3,y=2,z=0

方案1
main()
{
int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d",x,y,z+1);
}
方案2
main()
{
int x=0,y=5,z=3;
while(z-->0&&++x<5)
{
y=y-1;
if(z==0)
{
break;
}
printf("%d,%d,%d",x,y,z);
}

你的结果没有问题啊.从循环条件(z-->0&&++x<5)里我们可以看出,最先不会满足条件的是变量Z,因为他会在循环三次这后就不满足条件Z-->0了.如果条件不满足,循环就会退出.因为总共只循环了三次,所以我可以看出:X=X+3=0+3=3,Y=Y-3=5-3=2,Z=Z-3=3-3=0.

z-->0是什么啊?有问题吧