第4章循环结构程序设计2.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)
《第4章循环结构程序设计2.ppt》由会员分享,可在线阅读,更多相关《第4章循环结构程序设计2.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章循环结构程序设计2 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望1.break1.break语句语句breakbreak语句和语句和continuecontinue(1)(1)语句形式语句形式:break;break;(2)(2)作用作用:结束结束breakbreak所在的所在的 switch switch语句。语句。结束当前循环,跳出结束当前循环,跳出breakbreak所在的循所在的循 环结构。环结构。【例例7:7:】求求300300以以内内能能被被1
2、717整整除除的的最最大大的的数。数。找到满足条件的最找到满足条件的最大数,结束循环大数,结束循环#include stdio.hvoid main()int x;for(x=300;x=17;x-)if(x%17=0)break;printf(x=%dn,x);【例【例8 8】求求300300以内能被以内能被1717整除的所有整整除的所有整数。数。#include stdio.hvoid main()int x;for(x=1;x=300;x+)if(x%17!=0)continue;printf(%dt,x);while(x=300)if(x%17!=0)x+;continue;print
3、f(%dt,x);x+;(1 1)语句形式)语句形式:continue;(2 2)语句作用)语句作用:结束结束本次循环本次循环。2 2、continuecontinue 语句语句(3 3)语句执行流程)语句执行流程:continue continue语句可以结束本次循环,即不再执语句可以结束本次循环,即不再执行循环体中行循环体中continue continue 语句之后的语句,语句之后的语句,转入转入下一次循环条件的判断与执行。下一次循环条件的判断与执行。#include stdio.hvoid main()int a,b;for(a=1,b=1;a=10)break;if(b%3=1)b+
4、=3;continue;printf(%dn,a);【练习:】【练习:】分析以下程序的运行结果。分析以下程序的运行结果。程序运行结果:程序运行结果:4 4 循环程序设计循环程序设计(循环嵌套循环嵌套)n 例例7 7:打印如下所示等腰三角形:打印如下所示等腰三角形()()*循环程序设计循环程序设计(循环嵌套循环嵌套)*例例8:8:如何打印:如何打印:*NEXTNEXTNEXTNEXT 在循环体语句中又包含有另一个完整的循在循环体语句中又包含有另一个完整的循环结构的形式,称为环结构的形式,称为循环的嵌套循环的嵌套。如果内。如果内部的循环体中又有嵌套的循环语句,则构部的循环体中又有嵌套的循环语句,则
5、构成多重循环。成多重循环。while while、do-whiledo-while、forfor三种循环都可以互相三种循环都可以互相嵌套。嵌套。循环嵌套循环嵌套循环语句之间的关系循环语句之间的关系for(.).for(.).并列循环并列循环for(.)for(.).for(.)for(.).内内循循环环外外循循环环嵌套循环嵌套循环菱形图案程序如下:#include stdio.hvoid main()int i,j,k;for(j=1;j=5;j+)/上三角上三角 for(k=1;k=5-j;k+)printf();for(i=1;i=0;j-)/下三角下三角 for(k=1;k=4-j;k+
6、)printf();for(i=1;i=2*j+1;i+)printf(*);printf(n);循环嵌套循环嵌套n n枚举或穷举算法枚举或穷举算法:按问题本身的性质,一一按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真的过程中,检验每个可能解是否是问题的真正解,若是,我们采纳这个解,否则抛弃它。正解,若是,我们采纳这个解,否则抛弃它。对于所列举的值,既不能遗漏也不能重复。对于所列举的值,既不能遗漏也不能重复。循环嵌套循环嵌套n例例9 9:百钱买百鸡。(鸡翁一值钱五,鸡:百钱买百鸡。(鸡翁一值钱五,鸡母一值
7、钱母一值钱3 3,鸡雏三值钱一。百钱买百鸡,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?问鸡翁、鸡母、鸡雏各几何?Cocks+hens+chicks=100;Cocks+hens+chicks=100;5*cocks+3*hens+chicks/3=100;5*cocks+3*hens+chicks/3=100;Cocks:1-20;Cocks:1-20;Hens:1-33;Hens:1-33;Chicks:3,6,9Chicks:3,6,9.99;.99;Cocks hens chicks1198297336621233979665201233#include stdio.hvoid
8、 main()int x,y,z;for(x=1;x=20;x+)for(y=1;y=33;y+)z=100-x-y;if(5*x+3*y+z/3=100)&z%3=0)printf(“cock:%d,hens:%d,chicks:%dn,x,y,z);循环嵌套循环嵌套n例例10 10、搬砖问题:、搬砖问题:3636块砖,块砖,3636人搬,男搬人搬,男搬4 4,女搬,女搬3 3,两个小孩抬一块砖。要求一次全搬,两个小孩抬一块砖。要求一次全搬完,问男、女、小孩各若干?完,问男、女、小孩各若干?n解:据题意:解:据题意:menmen的值:的值:1919womenwomen的值:的值:112112
9、childrenchildren的值:的值:36-men-women36-men-women教材例教材例4-174-17(P86P86)采用对个位、十位、百位)采用对个位、十位、百位进行穷举的方法输出所有水仙花数。进行穷举的方法输出所有水仙花数。循环程序设计循环程序设计n使用枚举法,主要掌握两条原则:使用枚举法,主要掌握两条原则:1 1、确定搜索范围。、确定搜索范围。2 2、选择搜索策略。、选择搜索策略。搜索策略选择得好坏,直接决定程序的搜索策略选择得好坏,直接决定程序的工作量的大小。工作量的大小。循环程序设计循环程序设计请思考下面程序的功能,并思考怎样改变搜索策略或搜索范围,请思考下面程序的
10、功能,并思考怎样改变搜索策略或搜索范围,可以提高程序的效率。可以提高程序的效率。void main()int m,n,i;m=7;n=5;i=1;do if(i%m=0)if(i%n=0)printf(“%dn”,i);break;i+;while(i!=0);例例10:求最小公倍数:求最小公倍数#include void main()int x,y,z,t;printf(Please input x,y:);scanf(%d%d,&x,&y);if(xy)t=x;x=y;y=t;for(z=x;z=x*y;z+=x)if(z%y=0)break;printf(%dn,z);for(z=x;z
11、%y!=0;z+=x);void main()int m,n,i;m=7;n=5;i=7;do if(i%n=0)printf(“%dn”,i);break;i=i+7;while(i=m*n);枚举法求枚举法求2个整数的最大公约数个整数的最大公约数#include void main()int x,y,z,t;printf(Please input x,y:);scanf(%d%d,&x,&y);if(x=1;z-)if(y%z=0&x%z=0)break;printf(%dn,z);例例11 判断判断m是否素数。是否素数。算法:算法:素数:除了素数:除了1和自身外不能被其他数整除。和自身外
12、不能被其他数整除。判断方法:测试判断方法:测试m能否被能否被2到到根号根号m整除。整除。数学上已经证明:只要数学上已经证明:只要m不被不被2到根号到根号m之间的数之间的数整除,它就是素数。整除,它就是素数。根号根号m的计算方法:利用求平方根的函数的计算方法:利用求平方根的函数sqrt循环程序设计循环程序设计循环变量循环变量:定义为:定义为i(整型)(整型)循环变量的范围循环变量的范围:2k,k=sqrt(m)(k为整型)为整型)即:即:i的初值为的初值为2,循环执行条件为,循环执行条件为i=k循环变量的变化循环变量的变化:i+重复执行的操作重复执行的操作:如果如果m能被能被i整除,则说明整除,
13、则说明m不是素数,也就不需不是素数,也就不需要进行后面的判断,应退出循环结构(用要进行后面的判断,应退出循环结构(用break语语句);否则,继续判断。句);否则,继续判断。结果的输出结果的输出:如果循环是中途退出的,则如果循环是中途退出的,则i=k,输出,输出m不是素不是素数;否则,数;否则,m是一个素数。是一个素数。例例11 程序程序#include#include void main()int i,m,k;scanf(%d,&m);k=(int)sqrt(m);for(i=2;i=k;i+)if(m%i=0)break;if(i=k)printf(%d不是一个素数不是一个素数n,m);e
14、lseprintf(%d是一个素数是一个素数n,m);#include#includevoid main()int i,m,k,flag;flag=1;scanf(%d,&m);k=(int)sqrt(m);for(i=2;i=k;i+)if(m%i=0)flag=0;break;if(flag=1)printf(%d是一个素数是一个素数n,m);else printf(%d不是一个素数不是一个素数n,m);输出输出100以内的所有素数(以内的所有素数(5个一行输出)个一行输出)#include#includevoid main()int i,k,m,n;n=0;for(m=2;m=100;m
15、+)k=(int)sqrt(m);for(i=2;ik)/是素数是素数 printf(%5d,m);n+;if(n%5=0)printf(n);循环程序设计循环程序设计 算法算法2 2:迭代。:迭代。不断用新值取代变量的旧值或由旧值递推出不断用新值取代变量的旧值或由旧值递推出变量的新值的过程。变量的新值的过程。分析:设现有人口数为分析:设现有人口数为M M,则第一年后人口变为:,则第一年后人口变为:M=M*M=M*(1+0.021+0.02),第二年后,把上述赋值表达式),第二年后,把上述赋值表达式再执行一次,要计算再执行一次,要计算1010年后的人口,就是把上述年后的人口,就是把上述表达式执
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构 程序设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内