- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第5讲C语言循环控制
第五章 循环结构 概述 什么是循环? 循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。 为什么要使用循环? 在许多问题中需要用到循环控制。 C语言可实现循环的语句: 用goto 和 if 构成循环 while 语句 do ~ while 语句 for 语句 goto语句及用goto构成循环 goto语句一般格式: 例:用if 和goto语句构成循环,求 结构化程序设计方法主张限制使用goto语句,因为这种用法不符合结构化原则,滥用goto语句将使程序流程无规律、可读性差,一般不宜采用。只有在不得已时(例如能大大提高效率)才使用。 一般来说,可以有两种用途: 与if语句一起构成循环结构; 从循环体中跳转到循环体外。 while语句 一般形式: 例 用while循环求 例:用 公式求π的近似值,直到最后一项的绝对值小于10^-4。 do~while语句 一般形式: 特点:先执行循环体,后判断表达式 说明:至少执行一次循环体 注意:循环体最后的‘“;”号不可丢掉 例:用do~while循环求 例 while和do~while比较 for语句 C语言中for语句的使用最为灵活,既可以用于循环次数已经确定的情况,也可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句 一般形式: 说明: for语句中expr1, expr2 ,expr3 的类型可以使任意的,也可省略,但分号” ;”不可省 无限循环: for(;;) 例 用for循环求 例:求n!。 For循环和while循环的比较 for语句最简单的使用,例如: 循环的嵌套 三种循环可互相嵌套,层数不限 例:使用嵌套的for循环打印下面的图形。 *** *** *** 例:输入6门学生5门课程的成绩,分别统计出每个学生5门课程的平均成绩。 辅助控制语句—— continue语句 功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断 仅用于循环语句中 一般形式: continue; continue语句的使用场合 break语句和continue语句的区别 continue语句只结束本次循环,而不终止整个循环的执行,如: break语句则是结束整个循环过程,不再判断执行循环的条件是否成立,如: 程序举例 例:从输入的若干个大于0的树中选出最大值。输-1结束 程序举例 例:求Fibonacci数列前40个数。斐波那契数列的前几项是:1、1、2、3、5、8、13、21、34……。 分析: 这个数列有如下特点:第1,2两个数为1,1。从第3个数开始,该数是其前面两个数之和。即: F(1)=1 (n=1) F(2)=1 (n=2) F(n)=F(n-1)+F(n-2) (n≥3) 程序举例 迭代问题。例:已知求平方根的迭代公式如下,求正数a的平方根。 算法和步骤: 取a/2作为x0的初值,利用公式x1=(x0+a/x0)/2求出一个x1 把新求得的x1代入x0中,准备用这个新x0再求出一个x1 利用公式和新x0,再求出一个新的x1值 比较前后两次求得的平方根值x0和x1,若他们之间的误差小于或等于10^-5,则认为x1就是a的平方根,执行步骤5,否则,再去执行步骤2 输出a的平方根值 例:判断输入的数是否为素数。 例 求100~200间的全部素数。 译密码问题。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。 思路: 可以按以下规律将电文变成密码: 将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。 include stdio.hvoid main(){ char c; while((c=getchar())!=‘\n’) { if((c=‘a’ c=‘z’)|| (c=‘A’ c=‘Z’)) { c=c+4; if(c’Z’ c=‘Z’+4|| c’z’) c=c-26; } printf(“%c\n”,c); }} 谢谢 #include stdio.hvoid main(){
文档评论(0)