- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 循环结构的程序设计 5.1 循环结构问题的提出 5.2 解决单重循环的问题 5.3 解决多重循环的问题 5.4 简单的程序调试 5.1 循环结构问题的提出 在用计算机解决大量的实际问题时,经常会遇到如下许多重复运算的问题。 (1)求某一同学一学期的平均分。解决方法是将该同学这一学期所有考核成绩累加,再除以考核门数,就得到该生的平均分。 (2)计算:1*2*3*…*n。这是一个累乘的问题,每个乘数与前面的一个数都有固定的关系(后面的数比前面的数大1)。因此每次累乘的数都是前面的数加1,方法相同,实际这是一个重复累乘的问题。 这一类问题,重复的次数有些情况是已知的,有些情况是未知的。但是这些问题都带有重复性的工作,解决这类问题,采用循环结构最为适当。 有些问题,采用单重循环就能解决,比如上面所举的两个例子,都可以采用单重循环;而有些问题,比如说二维表格数据输出的问题,则需要采用双重循环才能解决。 C语言提供了三种实现循环结构的语句,它们分别是:while语句、do-while语句和for语句,三种循环语句各有不同的特点,我们可以灵活使用。 5.2 解决单重循环的问题 5.2.1 while循环语句 while循环语句的形式如下: while(表达式)循环体语句 while循环语句的执行过程如图5-1所示。 说明 (1)用while语句构成的是“当型”循环结构,它的特点是:“先判断,后执行”,如果表达式的最初值为0,则循环体语句一次也不执行。只有当表达式的值为非0时,才能执行循环体语句。执行完循环体语句后,再返回循环的开始部位,判断表达式的值,决定是否继续循环。 (2)循环体语句只能是一条语句,如需要使用多条语句,必须采用复合语句的形式。 (3)循环体内一定要有能够改变表达式的值的操作,最终使其表达式的值变为0,否则将形成无休止的“死”循环。 例5.1 求:1+2+3+…+n的累加求和的值。 问题分析: (1)我们首先需要设置一个存放累加求和的变量sum,每一次加一个数放入变量sum中; (2)再设置一个存放加数的变量i,每一次累加时被加的数均需比前一个数大1; (3)最后还需设置一个结束累加的变量n,确定累加到什么数为止。 根据以上分析,写出源程序如下: main ( ) { int i, n, sum; i=1; sum=0; printf ( Please input n : ); scanf (%d, n ); while ( i=n ) /* 累加的数i 小于或等于终止数n就循环累加,否则结束循环*/ { sum=sum+i; i++; } printf (sum=%d\n, sum ); } 说明 (1)存放累加求和的变量sum,说明后必须赋初值,一般为0,否则由于说明的变量其原有初值不确定,导致结果有误。 (2)程序中sum=sum+i; 语句是一个累加求和功能的语句,它是将变量sum中的数值加上变量i中的数值,求和后再放入变量sum中,此时变量sum中存放的数值已经变为新的数值,原有数值已被覆盖掉。 以上程序运行情况如下: Please input n : 100↙ sum=5050 5.2.2 do-while 循环语句 do-while 循环语句的形式如下: do 循环体语句 while (表达式); do-while语句的执行过程如图5-2所示。 说明 (1)用do-while语句构成的仍是“当型循环”结构。它的特点是:“先执行,后判断”。遇到do关键字后,首先执行循环体语句,然后计算表达式的值,如表达式的值为非0,则继续执行循环体语句,然后再计算表达式的值,如表达式的值为0,则结束循环,执行do-while语句后面的语句。因此这种循环结构,最少也可以执行一次循环体语句。 (2)循环体语句仍然只能是一条语句,如需要使用多条语句,必须采用复合语句的形式。 (3)循环体语句中也一定要有改变表达式的值的操作,最终使其表达式的值变为0,结束循环。否则将成为“死”循环。 (4)在关键字while的小括号的后面,一定要加分号“;”,千万不能忘记,它表示do-while语句到此结束。 例5.2 求:n!,即计算1×2×3×…×n的值。 源程序如下: main ( ) { int i, n, s; i =1; s =1; printf ( Please input n: ); scanf (%d, n ); do { s = s*i ; /* 使用“累乘”的公式 */ i++; } while ( i=n); pr
您可能关注的文档
最近下载
- 《机械装调技术》电子教案 模块五 整机调试与运行任务一 齿轮啮合齿侧间隙的检测与调整.doc VIP
- 青花瓷 完美演奏版 周杰伦 钢琴谱 数字 简谱.pdf VIP
- 第38届物理竞赛决赛实验考试答题纸 .pdf VIP
- 现代医药物流交易的配送中心建设项目可行性研究报告.doc VIP
- 2025-2026学年初中生物学人教版2024八年级上册-人教版2024教学设计合集.docx
- 养生馆卫生管理制度(3篇).docx
- 健康管理师课件第一章--健康管理概论.ppt VIP
- JBT 4333.4-2013 厢式压滤机和板框压滤机 第4部分:隔膜滤板.pdf VIP
- 电信反诈骗演讲稿模板5篇.docx VIP
- 基于光纤布拉格光栅的温度测量系统设计与应用.docx VIP
文档评论(0)