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

{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); } 请解说下步骤 谢谢,希望各位大哥大姐不吝赐教

好吧,我来分析吧:
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++执行完成。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-08
首先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本回答被提问者采纳
第2个回答  2010-06-08
首先循环后a=101 然后b=4再然后b=-1最后输出a,b
第3个回答  2010-06-08
格式!!

相关了解……

你可能感兴趣的内容

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