c++作业虚心请教

来源:百度知道 编辑:UC知道 时间:2024/05/26 14:38:44
#include<iostream.h>
void main()
{int a,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20) break;
if(b%3==1) {b+=3;continute;}
b-=5;}
cout<<a<<endl;
}

练习的答案为 8,但需要过程就是为什么会等于8,怎么算?

首先,判断出程序两个结束条件a>100和b>=20。
然后,你就一步一步弄就OK了。
1:a=1,b=1:由于b%3=1,所以:b=b+3
2:a=2,b=4;同理
3:a=3,b=7;这样就可以看出规律了,b-=5代码永远不执行。
4:a=4,b=10;同理。
……
我说到这里相信你也明白了
补充:
针对 垫背狮子 - 江湖新秀 四级
的疑问,最后输出的是a的值,我汗,,又是一个粗心汉……
cout<<a<<endl;

我算得22~
还真不知道为什么等于8
楼上的~
按照你的算法最后等于22

1:a=1,b=1:由于b%3=1,所以:b=b+3
2:a=2,b=4;同理
3:a=3,b=7;这样就可以看出规律了,b-=5代码永远不执行。
4:a=4,b=10;同理。
。。。。。。。。。。
当a=7,b=19
当a=8,b=22,
因为b>=20,执行BREAK,跳出循环
b=22。。。
希望来个高手解释下。

哈哈~谢谢ppliang0415 - 举人 四级
粗心了粗心了~

是8没错啊
这些问题其实你可以自己解决,用单步执行f11
看着它执行
OK