main() { int y=10; do{y--;}while(--y); printf("%d\n",y--); } 求输出结果,详细解及思路

main()
{ int y=10;
do{y--;}while(--y);
printf("%d\n",y--);
}
求输出结果,详细解及思路

main()
{ int y=10;
do
{
y--;//当语句执行第一次循环的时候在这里个Y的值是10当越过这一行之后Y的值被减1
}
while(--y);//因为之前Y的值被减1 现在是9而当它执行到下一行打印命令的时候它的值变成了8
printf("%d\n",y--);//此时输出的值为8,而Y的实际值变成7
}
注 :Y-- 是先进数据运算后将原值减1 而--Y是先将原值减1后再进行数据的运算
输出结果应为
8
6
4
2
当Y为0的时候While语句的判断应该为假,这时候循环终止
6年没用C语言了,有点手生.....
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-05
main()
{ int y=10;
do{y--;}//这一句做完,y=9
while(--y);//这一句做完,y=8
printf("%d\n",y--);
}
所以
过程如下;
y--之后:y=9;
--y:y=8
y--:y=7
--y:y=6
y--:y=5
--y:y=4
y--:y=3
--y:y=2
y--:y=1
--y:y=0
循环停止
然后输出:0
之后,y的值变为-1本回答被提问者采纳
第2个回答  2010-08-28
输出:0
do while循环的终止条件就是while后面的语句的值为false,具体到本题就是--y为0,因为--y是先--在计算表达式的值,所以此时y=0,因此printf的时候就是输出0,需要提醒的是y--是先算表达式的值在--的
第3个回答  2019-12-26
答案是0 但是是因为while 括号从9减到0后 (因为while后面有;)再输出y=0,然后又把y-1

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网