第07讲循环结构程序设计



《第07讲循环结构程序设计》由会员分享,可在线阅读,更多相关《第07讲循环结构程序设计(25页珍藏版)》请在装配图网上搜索。
1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,Program Design in C Language,Page,WUCC,第七讲,Begin:,第五章,循环结构程序设计,嵌套循环结构,continue,语句和,break,语句,goto,语句,在一个循环体内又包含另一个或多个完整的循环结构,称为循环的嵌套。,说明:,(1),嵌套原则,:,不允许交叉。,(2),循,环与分支可以相互嵌套但不允许交叉。,5.4,嵌套循环结构,*,*,*,*,输出图形:,程序段:,for,(i=1;i=4;i+),printf(*);,printf(n);,5.4 嵌套
2、循环结构,其中语句:,printf(*);,等价于,for,(j=1;j=8;j+)printf(,*,);,于是构成了二重循环语句:,for,(i=1;i=4;i+),for,(j=1;j=8;j+)printf(,*,);,printf(n);,5.4 嵌套循环结构,上面的例子中:,外循环由循环控制变量,i,控制,,i,由,1,递增到,4,。,for,(i=1;i=4;i+),for,(j=1;j=8;j+)printf(,*,);,printf(n);,每执行,1,次外循环,都要执行由循环控制变量,j,控制的,8,次内循环操作和,1,次换行操作。,5.4 嵌套循环结构,int n=1,i
3、,j;,while(n=3),printf(,输出外循环,n=%dn,n);i=1;,while(i=2),printf(1),输出内循环,i=%dn,i);i+;,j=1;,while(j=3),printf(2),输出内循环,j=%dn,j);j+;,n+;,例,读程序,写出运行结果。,5.4 嵌套循环结构,输出结果:,5.4 嵌套循环结构,对每,1,行而言,列编号从,1,行编号,行编号从,19,例,输出,九九乘法表,1*1=1,1*2=2 2*2=4,1*3=3 2*3=6 3*3=9,1*9=9 2*9=18 9*9=81,5.4 嵌套循环结构,#include,void m,ain(
4、),int i,j;,/*i,表示行编号,,j,表示列编号*,/,for,(i=1;i=9;i+),for,(j=1;j=i;j+),printf(%d*%d=%-2d,j,i,j*i);,printf(n);,5.4 嵌套循环结构,例,输出如下图形:,*,*,*,*,*,*,*,*,*,*,5.4 嵌套循环结构,行编号从,15,对每,1,行而言,*个数为,2,行编号,-1,基准行,对每,1,行而言,空格个数为,5-,行编号,#include,void main(),int i,j,k;,/*i,表示行编号,,j,表示空格个,数,,k,表示*个数*,/,for(i=1;i=5;i+),for(
5、j=1;j=5-i;j+)printf();,for(k=1;k=2*i-1;k+)printf(*);,printf(n);,5.4 嵌套循环结构,1,、,continue,语句,格式:,continue;,功能:结束本次循环,直接使程序回到循环控制条件重新判断。,注意:,continue,语句只能用于循环结构。,5.5 continue,语句和,break,语句,例,对除,5,的倍数以外的,1,100,的数求和。,#include,void main(),int i,s=0;,for,(i=1;i=100;i+),if(!(i%5),continue,;,/*i,是,5,的倍数则结束本次循
6、环*,/,s+=i;,/*i,不是,5,的倍数则进行求和*,/,printf(s=%dn,s);,5.5 continue,语句和,break,语句,#include,void main(),int i,cnt=0;,for,(i=1;i=50;i+),if(i%3=0),continue,;,printf(%dt,i);,cnt+;,printf(ntotal:%dn,cnt);,例,统计,150,之间不能被,3,整除的数的个数并输出这些数。,5.5 continue,语句和,break,语句,格式:,break;,功能:,立即终止循环语句的执行,执行后续语句。,2,、,break,语句,注
7、意:,(1)b,reak,语句只能用在,switch,语句和循环语句中。,(2)break,只能跳出直接包含它的循环语句(或者直接包含它的,switch,语句)。,5.5 continue,语句和,break,语句,例,统计输入的字符个数并输出它们,以“,!”,终止。,#include,void main(),char ch;,int cnt=0;,while,(1),ch=getchar();,if(ch=!),break,;,cnt+;printf(%c,ch);,printf(n,字符个数,=%dn,cnt);,5.5 continue,语句和,break,语句,例,输出,3100,中的
8、所有素数。,分析:,1),对于某整数,n,,如果不能被,2n/2,中的任何整数所整除,则该整数为素数,否则该整数为合数。,上述描述可用一个,for,语句来表示:,for(i=2;i=n/2;i+),if(n%i=0)break;,表示只要,n,能被,2n/2,中任何一个整数所整除,则,n,一定为合数,素数判断过程立即终止。,2),对于,3,100,之间的整数,可以表示如下:,for(n=3;n=100;n+),5.,5,continue语句和break语句,#include,void main(),int n,i;,for,(n=3;n=100;n+),for,(i=2;in/2),/*,条件
9、满足则,n,为素数*,/,printf(%dt,n);,printf(n);,5.,5,continue语句和break语句,格式:,goto,标号,;,标号,:,语句,作用:使程序流程无条件转向标号所标示的位置。,5.6 goto,语句和语句标号的使用,#include,void main(),int n=3,i;,L1,:if(n=100),i=2;,L2,:if(in/2)printf(%dt,n);,n+;,goto,L1,;,例,输出,3100,中的所有素数。,5.6 goto,语句和语句标号的使用,说明:,1)goto,语句为无条件转向语句,可与,if,语句配合形成循环结构。,2)
10、,在循环结构中可使用,goto,语句来一次跳出多层循环。,3),标号的命名规则同变量名。,4)goto,语句不符合结构化程序设计原则,一般不主张使用。,5.6 goto,语句和语句标号的使用,#include,void main(),int i,j,k;,for(i=1;i=4;i+),for(j=1;j=4;j+),for(k=1;k=4;k+),if(i!=j&j!=k&i!=k),printf(%dt,i*100+j*10+k);,printf(n);,程序举例,例,输出由,1,、,2,、,3,、,4,四个数字组成的互不相同且无重复数字的三位数。,程序举例,例,中国古代数学家张丘建在他的
11、算经中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?,请编写程序求解该问题。,#include,void main(),int cock,hen,chick;,for(cock=0;cock=20;cock+),for(hen=0;hen=33;hen+),chick=100-cock-hen;,if(chick%3=0&cock*5+hen*3+chick/3=100),printf(cock=%dthen=%dtchick=%dn,cock,hen,chick);,程序举例,The End,上机实验内容:,熟悉嵌套循环结构,,continue,和,break,语句;,实验教程,第,5,章 实验二、实验三,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。