c++第十七题。求详细过程

 我来答
wuiiao333
2015-06-10 · TA获得超过799个赞
知道小有建树答主
回答量:666
采纳率:0%
帮助的人:207万
展开全部
if((k+m)%s) //意思是只要得数不为0,就跳过这次循环体,重新开始
continue;

观察k m 和s的初始值, k+m=5 5%s得数为0。 也就是if条件为假,不执行continue;

而是执行++m;和k--; 注意每次循环都是m+1和k-1,所以循环完后k+m始终都为5,
也就是说无论循环多少次都不会执行continue;
循环的跳出条件是k为0(假),

所以
第一次循环:k=2,m=3; //循环完后k=1,m=4,然后判断k不为0
第二次循环:k=1,m=4 //循环完后k=0,m=5,然后判断k为0,跳出循环体

所以最后k=0,m=5,s一直没有改变
haiyangfenghuo
2015-06-10 · TA获得超过2439个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:807万
展开全部
过程如下:
第一次循环 k=2,m=3,k+m=5,(k+m)%s = 0,跳过continue,m=4,k=1
第二次循环 k = 1,m=4,k+m=5,(k+m)%s = 0,跳过continue,m = 5,k = 0退出while循环
此时 k =0,m =5,s = 5,选D
追问
为什么等于0就要跳过continue
追答
因为if(表达式) 语句1
这里表达式如果为0,就不执行语句1了呀,这是if语句的语法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
woshizjp
2015-06-10 · TA获得超过351个赞
知道小有建树答主
回答量:322
采纳率:100%
帮助的人:320万
展开全部
break是结束整个循环体,continue是结束单次循环

这个程序表达:当k+m的值正好不能被s整除时,退出本次循环;如果不满足,则执行++m和k--,所以一直都是不满足的,直到k减到为0时,整个while循环退出,这个时候k减了两次,m就加了两次,所以k为0,m为5,s不变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦莘C71c1
2015-06-10 · TA获得超过670个赞
知道小有建树答主
回答量:2543
采纳率:0%
帮助的人:506万
展开全部
写了两页纸,要就速递给你。
追问
拍照可以吗?
追答
太长了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式