- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第07讲循环的简化FOR.pdf
让程序具有重复做事的能力(四)
今天的问题:
1、循环的简化
while (循环条件){
重复执行的语句 1;
重复执行的语句 2;
重复执行的语句 3;
……
重复执行的语句 n;
}
简单的说,将代码放入一个“重复”盒子中(专业术语称为“循环
结构”)!
注意:
1、当将语句 1—语句 n 执行完后,自动判断“循环条件”中是
否为成立,若成立再执行语句 1—语句 n ,若不成立则什么都不执
行。
2、语句 1—语句 n 中,肯定有语句做了手脚,偷偷地修改条件
中所涉变量的值,从而使条件不满足了。
3、在语句 1—语句 n 中,如果有 break 被执行,则循环到此
结束了。
例题 1 攀登珠峰 一张厚度为 0.5mm 即 0.0005m
的纸张,长度非常长,柔韧性非常好可以来回折无数次,
无论有多高都有办法来回折,请问折了多少次后,其高
度可达到珠峰的高度?
换个问法,n 次后折纸的厚度是多少?
算法:exam71.c
1、定义双精度实数变量 h0,h,整数变量 n,
nCount
2、输入珠峰高度给 h0,纸的厚度给 h,输入您想折
的次数给 n.
3、当次数 nCountn 时:
h 新值=h 现值*2
nCount 新值=nCount 的现值+1,
输出最新高度 h、折纸次数 nCount。
计数变量 nCount 为 0—n,故简化。
将语句 8(计数变量初始值)、语句 11(循环继续条
件)、语句 13(计数变量的变化方式),整合为一句,如
minexer72.c 所示。
采用这种方式以后,程序更加简练!
注意:只适合知道计数变量取值范围的情况。
例题 2 :印度的舍罕王打算重赏国际象棋的发明者
达依尔 ,达依尔说:陛下请在
第 1 个格子放 1 粒麦子,
第 2 个格放第 1 个格子的 2 倍即 2 粒
第 3 个格放第 2 个格子的 2 倍即 4 粒
第 4 个格放第 3 个格子的 2 倍即 8 粒
第 5 个格放第 4 个格子的 2 倍即 16 粒
……
请问放了 n 格子以后,当前格子的麦子数是多少?
(1)长整 nwheat=1(格子 1 为 1 粒),常规整数
nCount=1(在格子 1 中),整数 n
(2)输入最大格子号给 n。
(3)当格子号 nCount=n 时,重复以下:
麦子数 nwheat 新值=nwheat 的现值*2
格子号 nCount 新值=nCount 的现值+1
显示麦子数 nwheat 与格子号 nCount
mainexer73.c
习题 1 将例题 1 改进一下以符合达依尔的真实情
况,每足一个格子,加上这个格子的麦子数,判断放满
n 格子后,总麦粒数为多少?
在例 1 的基础上,增加长整型变量 nwheatSum。
(1)超大整数 nwheat=1(格子 1 为 1 粒),常规整数
nCount=1(格子 1),总麦粒数 nwheatSum=1(为第 1
个格子的粒数),整数 n;
(2)输入最大格子号给 n。
(3)当格子号 nCountn 时,重复以下:
文档评论(0)