资源描述:
《第5章 循环结构程序设计(第二次课)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章循环结构程序设计5.1程序中需要用循环结构5.2用while语句和do-while语句实现循环5.3用for语句实现循环5.4循环的嵌套5.5用break语句和continue语句改变循环状态5.6几种循环的比较5.7程序举例主要内容5.4循环的嵌套一个循环体内又包含另一个完整的循环结构称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。三种循环(while循环、do-while循环和for循环)可以互相嵌套。5.4循环的嵌套下面几种都是合法的形式:(1)while()(2)do(3)for(;;){…{…{whil
2、e()dofor(;;){…}{…}{…}}while();}}while();5.4循环的嵌套(4)while()(5)for(;;)(6)do{…{…{…do{…}while()for(;;){}while(){}…{…}…}}}while()习题1:求100~200间的全部素数。5.4循环的嵌套举例例题5.9输入一个数,判断是否是素数。#include#includevoidmain(){intm,i,k;printf(“请输入一个整数:”);scanf(“%d”,&m);k=(
3、int)sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf(“%d是一个素数。”,m);elseprintf(“%d不是一个素数。",m);}#include#includevoidmain(){intm,k,i,n=0;for(m=101;m<=200;m=m+2){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf("%d",m);n=n+1;}if
4、(n%10==0)printf("");}printf("");}补充例题:编写程序输出九九乘法表。补充例题:编写程序输出九九乘法表。#includevoidmain(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d*%d=%d",i,j,i*j);printf("");}}编写程序解百鸡问题:100元钱买100只鸡,公鸡每只5元,母鸡每只3元,小鸡3只1元,问公鸡、母鸡、小鸡各多少只?#includevoidmain(){
5、intx,y;for(x=1;x<=100;x++)for(y=1;y<=100;y++)if(15*x+9*y+(100-x-y)==300)printf("%d,%d,%d",x,y,100-x-y);}5.6几种循环的比较(1)三种循环都可以用来处理同一问题,一般情况下它们可以互相代替。(2)在while循环和do-while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句(如i++,或i=i+1等)。5.6几种循环的比较for循环可以在表达式3中包含使循环趋
6、于结束的操作。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现。(3)用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。5.6几种循环的比较(4)while循环、do…while循环和for循环,都可以用break语句跳出循环,用continue语句结束本次循环。有一对兔子,出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问40个月的兔子总数为多少?例题5
7、.8解题思路5.7程序举例第几个月小兔子对数中兔子对数老兔子对数兔子总数110012010131012411135212563238753513┆┆┆┆┆可以看到每个月的兔子总数依次为1,1,2,3,5,8,13…这就是有名的费波那西(Fibonacci)数列。5.7程序举例例题5.8#includevoidmain(){longintf1,f2;inti;f1=1;f2=1;for(i=1;i<=20;i++){printf("%12ld%12ld",f1,f2);if(i%2==0)print
8、f("");f1=f1+f2;f2=f2+f1;}}程序运行结果:1123581321345589144233377610987159725844181676510946177112865746368750251213931964183