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

main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}求输出结果,详细解及思路... main()
{ int y=10;
do{y--;}while(--y);
printf("%d\n",y--);
}
求输出结果,详细解及思路
展开
 我来答
mlzyf1985
2010-08-28 · TA获得超过1454个赞
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:48.9万
展开全部
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语言了,有点手生.....
琼头浪子
推荐于2017-10-05 · TA获得超过602个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:218万
展开全部
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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zrj_bd
2010-08-28 · TA获得超过1870个赞
知道小有建树答主
回答量:647
采纳率:100%
帮助的人:1107万
展开全部
输出:0
do while循环的终止条件就是while后面的语句的值为false,具体到本题就是--y为0,因为--y是先--在计算表达式的值,所以此时y=0,因此printf的时候就是输出0,需要提醒的是y--是先算表达式的值在--的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
2001年3月27
2019-12-26
知道答主
回答量:1
采纳率:0%
帮助的人:670
展开全部
答案是0 但是是因为while 括号从9减到0后 (因为while后面有;)再输出y=0,然后又把y-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式