{int a,b; for(a=1,b=1;a<=100;a++)运行步骤说明及结果?

{inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf... {int a,b; for(a=1,b=1;a<=100;a++) {if(b>=20) break; if(b%3==1) {b+=3; continue; } b-=5; }
printf("%d\n",a); } 请解说下步骤 谢谢,希望各位大哥大姐不吝赐教
展开
 我来答
谭秀梅洛媪
2020-02-07 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:33%
帮助的人:849万
展开全部
好吧,我来分析吧:
1、首先注意for循环的控制条件,当b>=20或者a>100则跳出for循环,也即b<20且a<=100时执行for循环,明白这点很重要。
2、其次,第一次进入循环,a=1,b=1均满足循环条件,但b%3==1条件满足,故执行b=b+3操作,得到b=4,注意有continue,所以后面语句不执行,直接跳转到a++这个语句,所以第一次循环完之后:a=2,b=4
3、再次,进入第二轮循环,b%3==1也是满足的,故再次b=b+3,此轮同上轮一样,执行之后:a=3,b=7,进入下一轮。
4、此后,和2、3两步同理,都是b%3==1满足,因为每次都是加3,而之后又去模3,且都跳过for后面语句直接执行a++,所以,一直循环到b=22跳出for循环。此时a为8.
综合起来就是,每次循环b增加3,a增加1,且当b>22时跳出循环,结束程序。所以b从1增加到22,有(22-1)/3=7,所以a=1+7=8.
ps:楼上的做错了的,b=22时,a已经等于8了,此时判断b>=20条件成立,直接跳出,a还是等于8。一次完整的for循环应该是到a++执行完成。
百度网友6bfaa54
推荐于2016-05-08 · TA获得超过492个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:419万
展开全部
首先a=1,b=1,
然后连续执行b+=3,a++
直到b>=20,这时a=8,b=22,
因为有if(b>=20) break;跳出了循环,所以最终就是a=8,b=22.
a、b值的变化过程:
a=1,b=1
a=2;b=4
a=3;b=7
a=4;b=10
a=5;b=13
a=6;b=16
a=7;b=19
a=8;b=22
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-06-08
展开全部
首先循环后a=101 然后b=4再然后b=-1最后输出a,b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
754354200
2010-06-08 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:0
展开全部
格式!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式