C语言中 循环结构.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 循环控制结构 ;本章知识点:;5.1 while语句; 说明: (1)while是关键字。while后圆括号内的表达式一般是关系表达式或逻辑表达式,但也可以是C 语言中任意合法的表达式。 (2)循环体语句可以是一条语句,也可以是多条语句,如果循环体语句包含多条语句,则需要用一对花括号“{}”把循环体语句括起来,采用复合语句的形式。;【例5.1】 求前100个自然数的和 。;需要注意的几个问题: (1)累加求和算法。这个程序采用的算法思想称为累加求和,即:不断用新累加的值取代变量的旧值,最终得到求和结果,变量sum也叫“累加器”,初值一般为0。 (2)必须给变量赋初值。 (3)正确判断条件的边界值。 (4) 避免出现“死循环”。 (5)可能出现循环体不执行。 (6)while后面圆括号内的表达式一般为关系表达式或逻辑表达式,但也可以是其它类型的表??式,.;【例5.2】 使用while语句求n!。;循环三要素之间的关系。 循环变量赋初值、判断控制表达式和修改循环变量是所谓的“循环三要素”。 一般来说,进入循环之前,应该给循环变量赋初值,确保循环能够正常开始;在控制表达式中判断循环变量是否达到循环的终止值;在循环体中对循环变量进行修改,以使循环正常的趋向终止。在编写程序时要注意他们的位置关系。 ;【例5.3】编写程序,输入一个字符序列,直至换行为止,统计出大写字母、小写字母、数字、空格和其他字符的个数。;5.2 for语句;11;For语句最常用、最简单的形式; 【例5.4】设n=30,编写程序,计算并输出S(n)的值。 S(n)=(1*2)/(3*4)-(3*4)/(5*6)+(5*6)/(7*8)+…+(-1)(n-1)*[(2n-1)*2n]/[(2n+1)*(2n+2)] +…;关于for语句的几点说明: (1)循环体语句可以是简单语句也可以是使用一对花括号括起来的复合语句。如果是一个语句,也可以和for写在一行上,这样使程序看起来更加简洁;如果循环体包含多条语句,最好是另起一行,采用一对花括号括起来的复合语句形式,增加程序的可读性。 (2)表达式的省略。for语句中的三个表达式均可以省略,但是两个分号不能省略。;【例5.5】编写程序,输出所有的水仙花数。水仙花数是指一??3位数,其各位数字的立方和等于该数本身。例如:153=13+53+33=153,所以153就是水仙花数。;【例5.11】判断m是否为素数。 程序分析:所谓素数,就是一个正整数,除了本身和1 以外并没有任何其他因子。例如 2,3,5,7 就是素数。;5.3 do…while语句; (1)do…while语句中“While{表达式};”后面的分号是不能省略的,这一点是和while语句不一样的。 (2)do…while语句是先执行循环体语句,后判断表达式,因此无论条件是否成立,将至少执行一次循环体。而while语句是先判断表达式,后执行循环体语句,因此,如果表达式在第一次判断时就不成立,则循环体一次也不执行。;注意: (1)在计算机解决实际问题时,常常会用到类似本程序的“穷举法”。“穷举法”解决的问题一般具有这种特点:如果问题有解,一组或多组,必定全在某个集合中;如果这个集合内无解,集合外也肯定无解。这样,在解决问题时,就可以将集合中的元素一一列举出来,验证是否为问题的解。本题就是一一验证100~999之间所有的数,最终找出答案。 (2)程序中在做是否相等关系判断(“i==a*a*a+b*b*b+c*c*c)使用到了关系运算符“==”,而不是“=”,后者是赋值运算符,在c语言中这两种运算符形式是不一样的,要注意区别。;20;While语句和do…while语句的比较:; int main() { char c; do { c=getchar(); }while(c!=A); printf(校验成功\n); return 0; };void main() { double n=1.0,d=1.0,pi=0.0; int sign=1; do { pi=pi+d; n=n+2; sign=-sign; /*改变数据项的符号*/ d=sign/n; /*求出数据项*/ } while (fabs(d)=1.0e-6); pi=4.0*pi; printf(pi=%10.7lf\n,pi); }; 三种循环的比较: (1)while 和do…while语句一般实现标志式循环,即无法预知循环的次数,循环只是在一定条件下进行;而for语句大多实现计数式循环。 (

文档评论(0)

tianebandeyazi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档