第5章循环结构要点解析.ppt

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 循环结构 循环控制 5.1 while语句 5.1 while语句 5.1 while语句 5.1 while语句 5.1 while语句 5.1 while语句 5.1 while语句 5.1 while语句 5.2 do-while循环 一、do-while循环的一般格式 do 循环体 while(表达式); 1、“表达式”可以是任意表达式,用来判定循环是否终止(或者说判定循环体是否执行)。表达式的值要么为真,要么为假;如果其值为一个数值,则非0的任何数都为真,而0代表假。即使第一次执行时“表达式”的值为假,“循环体”中的语句最少会被执行一次。 2、“循环体”中可以是单语句,也可以是空语句(只有一个;的语句)或复合语句,如果是复合语句,则必须括在{}之中。 3、do-while作为一个语句,必须以分号(;)结束,所以在while(表达式)后一定要有分号。 二、do-while循环语句的执行顺序 (1)先执行循环体; (2)计算表达式的值,并判断表达式的值是真还是假; (3)如果是真,则继续转到(1)步执行循环体; (4)否则退出循环,转而执行本语句后的其他语句。 5.2 do-while循环 计算s=1+2+3+…+100 main() { int i,s; s=0; i=1; do { s=s+i; /*累加*/ i++; }while(i=100); /*i的值小于等于100时继续循环*/ printf(“s=%d\n”,s); /*输出累加结果*/ } 5.2 do-while循环 例5.2 编写程序计算并输出下列级数和: 直到某项的绝对值小于10-4为止。 (1)这是一个逐项相加的问题,第一项可以看成sum的初值; (2)每一项的正或负正好交替进行(即各项符号相间),因此 可以设一个改变每一项的符号的变量f,每次累加前将变量f 自身取负(即f=-f),并将其与该项的和相乘; (3)第k项的表达式为:1/(k*(k+1),可以用一个变量d来存放第k 项的值,以便于累加和判断该项的值是否满足条件; 5.2 do-while循环 程序如下: #include stdio.h #include math.h main() {int k; double sum,d,f; sum=1.0; k=0; f=1.0; do { k=k+1;f=-f; /*符号变量f自身取负*/ d=1.0/(k*(k+1)); /*计算第k项的值,试想:为什么1必须用1.0?*/ sum=sum+f*d; /*累加第k项*/ }while(fabs(d)=1.0e-4); /*某项的值d的绝对值如果大于10-4则退出循环*/ printf(“sum=%lf\n”,sum); } 5.2 do-while循环 例5.3 从键盘输入1个整数,把这个整数中的各位数字反序输出。例如,输入12345,则输出为 5 4 3 2 1。 问题分析: 所谓反序输出就是先输出个位数,再输出十位数……对任意整数k而言,可以用k%10求得个位数,例如,12345%10=5。在此基础上,将k的值用k/10来代替,即用k/10将k缩小10倍。例如,12345/10=1234(试想为什么不等于1234.5?)。这样,k就由原来的5位数变成了4位数。用同样的方法可以求得该4位数的个位数(即原5位数的十位数),再将4位数缩小为3位数,依此类推,直到剩1位数。在1位数的情况下,直接输出该数,整个问题就解决了。剩下的问题就是如何判断k已经缩小为1位数,如果k为1位数,则必有k/10=0。因此,解决这个问题的基本思路是不断求出k的个位数,将该个位数输出,然后将k缩小10倍。如果缩小后的k不等于0,就继续进入下一轮循环;否则,退出循环。 5.2 do-while循环 程序如下: main() { int k,g; printf(“Please input an integer:”); scanf(“%d”,k); do { g=k%10; printf(“%2d”,g); k=k/10; }while(k!=0); } 5.3 for循环 一、for循环语句一般格式 for(表达式

文档评论(0)

三沙市的姑娘 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档