标题:这个程序哪里出错了?
只看楼主
sfesdm
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-5-2
 问题点数:0 回复次数:1 
这个程序哪里出错了?
程序
#include<iostream.h>
void main()
{
int i,a(0);
for(i=1;i<=15;i++)
do{
i++;
a++;}
while(i<10);
i++;
cout<<i<<' '<<a<<endl;
}
对于这个程序,我的分析思路是:判断i的初始值小于15后,先在do语句里循环,i++之后=10,a=9,然后i++在while后面自增为11;i再在for里面的表达式三自增,变为12,此时a还是等于9;然后判断i=12<15,再执行do循环,i=13,a=10。i再在while后面自增为14,再在for里面自增为15,此时a=10。因为i=15,于是又执行do循环,i自增为16,a自增为11。然后i在while后面自增为17,再在for里自增为18,a仍然为11,程序循环结束,输出i=18,a=11。
但是实际上的结果是i=18,a=12......请教各位高手,我这样分析的这个程序到底错在哪里了?
搜索更多相关主题的帖子: void int main cout 
2008-05-02 21:29
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
得分:0 
循环条件是在循环的最后检查,而不是在开始检查,所以循环语句至少要执行一次
2008-05-03 19:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-212071-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.209519 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved