c++入门 for语句使用

for(intk=1;k<=n;k++)if(n%k==0)cout<<k<<"";这是一个求N的因数的过程他是让N除以1,2,3......N个人理解是把N%1算一次,... for(int k=1;k<=n;k++)
if (n%k==0)
cout<<k<<" ";
这是一个求N的因数的过程 他是让N除以1,2,3......N
个人理解是把N%1算一次,N%2再算一次,直到算完

但是后来又遇到一个程序

int i=1,a=0;
for (;i<=5;i++)
do{
i++;
a++;
}while(i<3)
i++;

最后输出了7和3
问一下
for (;i<=5;i++)
要是把i=1,i=2,...i=5全部做下去
那样输出的i不是应该有很多个吗?
即使底下有while也应该是对输出的一部分i处理啊
为什么最后只有一个i呢??
展开
 我来答
百度网友7c87444
2012-10-10 · TA获得超过1338个赞
知道小有建树答主
回答量:1126
采纳率:0%
帮助的人:357万
展开全部
当然只有一个i了
当do while循环中 i的值为3的时候,就会跳出do while 循环,接着不经过do while循环,一直循环到i=6的时候,接着运行到i++
此时,如果printf i,a则得到i=7,a=2
quantal
2012-10-10 · 超过12用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:29.8万
展开全部
第一个程序里输出cout在循环体内部,所以会有多个输出,
第二个程序for循环执行了2次,i的值分别是0和4,第一次循环while执行两次,第二次循环while执行一次,输出语句在循环外,所以只有一个结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
此生我独醉
2012-10-10 · 超过32用户采纳过TA的回答
知道答主
回答量:181
采纳率:0%
帮助的人:88.2万
展开全部
你的输出语句在哪里啊,这从哪里看输出语句啊,没有输出语句,不确定你是在哪里改变了a的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GarfieldGCat
2012-10-10 · TA获得超过500个赞
知道小有建树答主
回答量:445
采纳率:92%
帮助的人:277万
展开全部
我没看懂,没输出语句哪来的输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linweiwww
2012-10-10
知道答主
回答量:61
采纳率:0%
帮助的人:17.6万
展开全部
yun
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式