(5.5.7)--翻转课补充课件-第08讲-循环结构程序设计(三)--提高部分.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《(5.5.7)--翻转课补充课件-第08讲-循环结构程序设计(三)--提高部分.ppt》由会员分享,可在线阅读,更多相关《(5.5.7)--翻转课补充课件-第08讲-循环结构程序设计(三)--提高部分.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计语言程序设计 The C Programming Language 第第8讲讲 循环结构程序设计(三)循环结构程序设计(三)提高部分提高部分第第8讲讲 循环结构循环结构程序设计(三)程序设计(三)提高部分提高部分4.7.1 for语句的应用 4.7.2 三种循环的对比 作业布置 课堂练习教学总结 4.7.3 goto语句及其应用4.7.1 for4.7.1 for语句的应用语句的应用【例例4.20】用在用在for循环中缺省循环中缺省“表达式表达式1”的方的方法改写例法改写例4.5中程序:在两行上分别按顺序和中程序:在两行上分别按顺序和逆序输出逆序输出26个英文大写字母。个英文大写
2、字母。#include main()int i=0;for(i=0;i=0;i-)printf(%c,A+i);printf(n);for语句缺省表达式语句缺省表达式1 for结束时结束时i值是值是26 i的值由的值由26减为减为25 for 的一般形式中的一般形式中“表达式表达式1”可以省略,但其后可以省略,但其后面的分号不能丢。面的分号不能丢。在进入循环之前循环变量已被赋值时,为了提高在进入循环之前循环变量已被赋值时,为了提高执行效率省略执行效率省略“表达式表达式1”,如果如果“表达式表达式1”较复杂,为提高可读性,进入循较复杂,为提高可读性,进入循环之前,先处理表达式环之前,先处理表达式
3、1,这时也省略,这时也省略“表达式表达式1”。在在for 语句中省略语句中省略“表达式表达式1”,执行,执行for 语句时,语句时,将跳过将跳过“处理表达式处理表达式1”,其它步骤不变。,其它步骤不变。说明:说明:【例例4.21】在在for循环中缺省循环中缺省“表达式表达式2”的的示例。打印示例。打印“水仙花数水仙花数”。“水仙花数水仙花数”是指一个三位数,其每位数是指一个三位数,其每位数字的立方和等于该数,例如:字的立方和等于该数,例如:371就是一就是一个个“水仙花数水仙花数”,因为,因为371=33+73+13。本本题题可可参参照照例例2.4中中的的算算法法求求3位位数数的的各位数字立方
4、之和。各位数字立方之和。如如果果一一个个数数的的每每位位数数字字立立方方之之和和等等于于该数,则输出此数。该数,则输出此数。编程点拨编程点拨for(x=100;x+)a=x/100;b=x/10-a*10;/b=x/10%10;c=x%10;if(x=a*a*a+b*b*b+c*c*c)printf(%5d,x);输出输出“水仙花数水仙花数”运行程序时进入死循环运行程序时进入死循环 if(x=1000)break;缺省表达式缺省表达式2【例例4.22】在在for循环中缺省循环中缺省“表达式表达式3”的示例。编写猴子吃桃子问题的程序:的示例。编写猴子吃桃子问题的程序:猴子第猴子第1天摘下若干个桃
5、子,猴子当天吃天摘下若干个桃子,猴子当天吃了一半后又再吃了一个,从第了一半后又再吃了一个,从第2天起猴子天起猴子每天都是吃了前一天剩下的一半多一个每天都是吃了前一天剩下的一半多一个桃子。到第桃子。到第10天猴子想吃桃子的时候发天猴子想吃桃子的时候发现只剩下了一个桃子,请计算猴子第现只剩下了一个桃子,请计算猴子第1天天共摘了多少个桃子。共摘了多少个桃子。猴猴猴猴子子子子共共共共吃吃吃吃了了了了1010天天天天的的的的桃桃桃桃子子子子,最最最最后后后后一一一一天天天天猴猴猴猴子子子子吃吃吃吃剩剩剩剩下下下下的的的的桃桃桃桃子子子子数数数数为为为为1 1个个个个,猴猴猴猴子子子子每每每每天天天天吃吃
6、吃吃桃桃桃桃子子子子都都都都遵遵遵遵循循循循相同的规律:相同的规律:相同的规律:相同的规律:每每每每天天天天都都都都是是是是吃吃吃吃了了了了前前前前一一一一天天天天剩剩剩剩下下下下的的的的一一一一半半半半多多多多一一一一个个个个桃桃桃桃子子子子。因因因因此此此此我我我我们们们们可可可可以以以以依依依依次次次次从从从从第第第第1010天天天天推推推推算算算算出出出出第第第第9 9天天天天的的的的桃桃桃桃子子子子数数数数、从从从从第第第第9 9天天天天推推推推算算算算出出出出第第第第8 8天天天天的的的的桃桃桃桃子子子子数数数数,从从从从第第第第2 2天天天天推推推推算算算算出出出出第第第第1 1
7、天天天天的的的的桃桃桃桃子子子子数数数数(即即即即第第第第1 1天天天天共共共共摘摘摘摘桃子总数)。桃子总数)。桃子总数)。桃子总数)。编程点拨编程点拨 由由由由于于于于猴猴猴猴子子子子每每每每天天天天吃吃吃吃桃桃桃桃子子子子都都都都遵遵遵遵循循循循相相相相同同同同的的的的规规规规律律律律,此此此此题题题题可可可可用用用用循循循循环环环环的的的的算算算算法法法法来来来来解解解解决决决决,循循循循环环环环控控控控制制制制变变变变量量量量为为为为天天天天数数数数dayday,dayday的的的的初初初初值值值值是是是是9 9(第第第第9 9天天天天),用用用用day-day-依依依依次来递减天数,
8、次来递减天数,次来递减天数,次来递减天数,dayday的终值是的终值是的终值是的终值是1 1(第(第(第(第1 1天)。天)。天)。天)。编程点拨编程点拨#include main()int day=0,n1=0,n2=0;for(day=9,n2=1;day=1;)n1=(n2+1)*2;n2=n1;day-;printf(First day:%dn,n1);运行结果:运行结果:First day:1534First day:1534for语句缺省表语句缺省表达式达式3,表达式,表达式1为逗号表达式为逗号表达式前一天桃子数是第二天桃子前一天桃子数是第二天桃子数加数加1后的后的2倍倍 相当于表
9、达式相当于表达式3 for 语句的一般形式中语句的一般形式中“表达式表达式3”也可以省略,也可以省略,但为了使循环能够正常结束,不出现但为了使循环能够正常结束,不出现“死循环死循环”的情况,在循环体的最后加上的情况,在循环体的最后加上“表达式表达式3”,这样也能达到相同效果。这样也能达到相同效果。在在for 语句中省略语句中省略“表达式表达式3”后,执行后,执行for 语句语句时,将跳过时,将跳过“处理表达式处理表达式3”这一步,其它步骤这一步,其它步骤不变不变。此例也可以用此例也可以用while和和dowhile循环解决,请循环解决,请自行试。自行试。说明:说明:讨论题讨论题4.144.14
10、 若循环控制变量天数若循环控制变量天数day的初值是的初值是1(第(第1天),用天),用day+依次来递增天数,依次来递增天数,day的终值是的终值是9,则能解决猴子吃桃子问题吗,则能解决猴子吃桃子问题吗?以上几个例子说明以上几个例子说明for循环中可以分别省略部分循环中可以分别省略部分表达式,实际上在表达式,实际上在for循环中,根据情况可以随循环中,根据情况可以随意省略部分或所有表达式,但不管省略哪个表意省略部分或所有表达式,但不管省略哪个表达式,达式,两个两个“;”不能丢,而且要做到使循环不能丢,而且要做到使循环正常退出。正常退出。在在for语句圆括号后面不能加语句圆括号后面不能加“;”
11、,如果顺手,如果顺手加上加上“;”,则循环体语句是空语句,而所希,则循环体语句是空语句,而所希望的循环体变成望的循环体变成for语句的下面语句,虽然程序语句的下面语句,虽然程序没有语法错,但得不到正确的结果,有时还发没有语法错,但得不到正确的结果,有时还发生生“死循环死循环”现象。现象。说明:说明:4.7.2 4.7.2 三种循环的对比三种循环的对比【例例4.23】编写程序,编写程序,求求 的值,其中的值,其中n表示表示a的个数,的个数,a是非零整数是非零整数0至至9,例如,例如a、n分别为分别为3和和4,计算,计算 的值。的值。变量变量变量变量s s存放存放存放存放n n个整数的和个整数的和
12、个整数的和个整数的和,每一项变化情况如下:每一项变化情况如下:每一项变化情况如下:每一项变化情况如下:第一项:第一项:第一项:第一项:t=t+3 t=t+3 (t t的初值为的初值为的初值为的初值为0 0,t t的值变为的值变为的值变为的值变为3 3)第二项:第二项:第二项:第二项:t=t+30 t=t+30 (t t的值变为的值变为的值变为的值变为3333)第三项:第三项:第三项:第三项:t=t+300 t=t+300(t t的值变为的值变为的值变为的值变为333333)第四项:第四项:第四项:第四项:t=t+3000t=t+3000(t t的值变为的值变为的值变为的值变为33333333)
13、其中,其中,其中,其中,3 3是是是是a a的初始值,的初始值,的初始值,的初始值,3030是是是是a a的的的的1010倍,如果把倍,如果把倍,如果把倍,如果把a a的的的的1010倍看作新的倍看作新的倍看作新的倍看作新的a a值,则值,则值,则值,则300300又是又是又是又是a a的的的的1010倍,以此类倍,以此类倍,以此类倍,以此类推,所以推,所以推,所以推,所以需要重复的语句是:需要重复的语句是:需要重复的语句是:需要重复的语句是:t=t+a;a=a*10;t=t+a;a=a*10;根据题意,循环需要执行根据题意,循环需要执行根据题意,循环需要执行根据题意,循环需要执行n n次。次
14、。次。次。当事前能够确定循环次数,一般用当事前能够确定循环次数,一般用当事前能够确定循环次数,一般用当事前能够确定循环次数,一般用forfor语句。语句。语句。语句。编程点拨编程点拨#include main()int n=0,i=0;long a=0,s=0,t=0;printf(Input a&n:);scanf(%ld%d,&a,&n);printf(%ld+%ld%ld+.=,a,a,a);for(i=1,s=0,t=0;i=n;i+)t=t+a;s=s+t;a=a*10;printf(%ldn,s);运行结果:运行结果:Input a&n:Input a&n:3 63+33+333+
15、.=370368 3+33+333+.=370368 求和求和计算每一项的值计算每一项的值把把a的的10倍看作新的倍看作新的a值值 讨论题讨论题4.154.15 如果当输入的如果当输入的a值不是非零数字时,要求用值不是非零数字时,要求用户重新输入,则应如何修改程序?户重新输入,则应如何修改程序?讨论题讨论题4.164.16 如果每一项按下面步骤计算,则如何修改程序?如果每一项按下面步骤计算,则如何修改程序?第一项:第一项:t=t*10+3 (t的初值为的初值为0,t的值变为的值变为3)第二项:第二项:t=t*10+3 (t的值变为的值变为33)第三项:第三项:t=t*10+3 (t的值变为的值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 5.5 翻转 补充 课件 08 循环 结构 程序设计 提高 部分
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内