第4章 循环结构程序设计.ppt

上传人:豆**** 文档编号:77586282 上传时间:2023-03-15 格式:PPT 页数:74 大小:778.50KB
返回 下载 相关 举报
第4章 循环结构程序设计.ppt_第1页
第1页 / 共74页
第4章 循环结构程序设计.ppt_第2页
第2页 / 共74页
点击查看更多>>
资源描述

《第4章 循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第4章 循环结构程序设计.ppt(74页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第4章章循环结构程序设循环结构程序设计计n熟练掌握三种循环语句的基本结构以及循环语句的嵌套。熟练掌握三种循环语句的基本结构以及循环语句的嵌套。n掌握掌握goto语句的一般形式。语句的一般形式。n熟练掌握熟练掌握break、continue跳转语句使用跳转语句使用n使用三种基本结构编写简单的程序使用三种基本结构编写简单的程序本章重点本章重点2008-9-262程序设计基础(C语言)wh4.14.1循环的概念循环的概念循环:循环:就是有规律地重复执行某些语句的过程。就是有规律地重复执行某些语句的过程。2008-9-263程序设计基础(C语言)wh 例如:要计算例如:要计算0到到360度的正弦函数

2、,要求每隔度的正弦函数,要求每隔0.1度计算度计算一次,如果没有循环结构,则:一次,如果没有循环结构,则:.x=0.0;y=sin(x);printf(“y=%f”,y);x=0.1;y=sin(x*3.14159/180.0);printf(“y=%f”,y);对于如此简单的问题,需要对于如此简单的问题,需要10000多条语句。多条语句。2008-9-264程序设计基础(C语言)wh 循环结构来处理重复计算的问题。循环结构来处理重复计算的问题。对于上述问题可以用以下程序:对于上述问题可以用以下程序:for(i=0;i=3600;i+)x=i*3.14159/1800.0;y=sin(x);p

3、rintf(“y=%f”,y);显然,这段程序简洁易懂。显然,这段程序简洁易懂。2008-9-265程序设计基础(C语言)wh4.2 for4.2 for循环循环for循环通过循环通过for语句实现。语句实现。for语句的一般格式为:语句的一般格式为:for(表达式表达式1;表达式;表达式2;表达式;表达式3)语句语句表达式表达式1用于循环赋初始值,它只能执行一次;用于循环赋初始值,它只能执行一次;表达式表达式2是循环条件;是循环条件;表达式表达式3用于对循环条件的修改,以使循环能趋于结束。用于对循环条件的修改,以使循环能趋于结束。2008-9-266程序设计基础(C语言)wh 执行过程:执行

4、过程:执行表达式1计算表达式2并判断循环体执行表达式3=0非非02008-9-267程序设计基础(C语言)wh例如例如:求从求从1 1加到加到100100的程序。的程序。程序如下:程序如下:main()ints,i;s=0;for(i=1;i=100;i+)s=s+i;printf(sum=%d,s);循环体!循环体!结果:结果:sum=50502008-9-268程序设计基础(C语言)whforfor语句语句-使用要点使用要点1、for语句中的表达式语句中的表达式1可以省略可以省略,但在但在for循环之前循环之前应给循环应给循环变量赋值变量赋值.例如例如:i=1;for(;i=100;i+)

5、sum=sum+i;2、表达式、表达式2也可以省略也可以省略,但循环将陷入死循环但循环将陷入死循环.例如例如:for(i=1;i+)sum=sum+i;3、表达式、表达式3也可以省略也可以省略,但应在循环体中增加使循环变量值改但应在循环体中增加使循环变量值改变的语句变的语句.例如例如:for(sum=0,i=0;i=100;)sum=sum+i;i+;2008-9-269程序设计基础(C语言)wh4、表达式、表达式1和表达式和表达式3同时省略也允许同时省略也允许,例如例如:i=1;sum=0;for(;i=100;)sum=sum+i;i+;这是完全与这是完全与while循环等同循环等同.5、

6、三个表达式都可以省略、三个表达式都可以省略,但但“;”不能省略。不能省略。for(;)sum=sum+i;循环将无休止的执行下去循环将无休止的执行下去forfor语句语句-使用要点使用要点2008-9-2610程序设计基础(C语言)whforfor语句语句-使用要点使用要点6、表达式、表达式1中的表达式可以是循环变量的赋初值的表达式中的表达式可以是循环变量的赋初值的表达式,也也可是与赋初值根本无关的其他表达式可是与赋初值根本无关的其他表达式,或者两者兼而有之或者两者兼而有之.例如例如:for(sum=0,i=1;i=100;i+)sum=sum+i;表达式表达式3也可以出现同样的情况也可以出现

7、同样的情况,例如例如:for(sum=0,i=1;i=100;sum=sum+i,i+);2008-9-2611程序设计基础(C语言)wh7、表达式、表达式2一般清况下是关系表达式或逻辑一般清况下是关系表达式或逻辑表达式表达式,也可以是其他表达式也可以是其他表达式,例如例如:for(;(c=getchar()!=n;printf(“%c”,c);若输入若输入:cauc 输出为输出为cauc,不是输出不是输出ccaauucc.forfor语句语句-使用要点使用要点2008-9-2612程序设计基础(C语言)wh 例例求求Fibonacci数列数列1,1,2,3,5,8的前的前30个数个数F1=1

8、F2=1Fn=Fn-1+Fn-22=1+13=1+25=2+38=3+5在一次循环中计算两项,递推公式为:在一次循环中计算两项,递推公式为:F1=1F2=1(初值)(初值)F1=F1+F2F2=F2+F12008-9-2613程序设计基础(C语言)wh main()longintf1,f2;inti,nprintf(“Inputn:”);scanf(“%d”,&n);f1=f2=1;for(i=1;i=n;i+)printf(“%ldt%ldn”,f1,f2);f1=f1+f2;f2=f2+f1;2008-9-2614程序设计基础(C语言)whforfor语句语句-范例范例#includevo

9、idmain(void)inti,n;longfact=1;printf(pleaseinputn:);scanf(%d,&n);for(i=1;i=n;i+)fact*=i;printf(%d!=%ld,n,fact);例例:求求n!n!2008-9-2615程序设计基础(C语言)whforfor语句例语句例2 2:求一个等差数列前求一个等差数列前n项的和:项的和:ai+1-ai=d(i=1,2,3)分析:分析:1输入输入n、d和等差数列的第一个数和等差数列的第一个数a的取值。的取值。2sum、i的初值置的初值置03a+sumsum4计算数列中下一个数的取值计算数列中下一个数的取值a+da5

10、i+1i6重复重复3、4、5步直到步直到i大于大于n7输出结果输出结果nforfor语句语句-范例范例2008-9-2616程序设计基础(C语言)wh#includevoidmain(void)inta,d,n,i;intai,sum=0;printf(“inputa=?td=?tn=?n”);scanf(“%d%d%d”,&a,&d,&n);ai=a;for(i=1;i=n;i+)sum+=ai;ai+=d;printf(“sum=%dn”,sum);2008-9-2617程序设计基础(C语言)wh for语句的特点:语句的特点:1、使用了三个表达式、使用了三个表达式2、循环控制变量可以在循

11、环体内使用,也可以不使用,、循环控制变量可以在循环体内使用,也可以不使用,仅用来控制循环次数仅用来控制循环次数3、从正常出口离开循环时,循环控制变量会超过终值、从正常出口离开循环时,循环控制变量会超过终值2008-9-2618程序设计基础(C语言)whforfor语句语句练习练习练习练习:求求(即求(即求1+2!+3!+4!+20!)。!)。2008-9-2619程序设计基础(C语言)wh4.3 while4.3 while循环循环当型循环当型循环while循环通过循环通过while语句实现。语句实现。while语句的一般格式为:语句的一般格式为:while(表达式表达式)语句语句2008-9

12、-2620程序设计基础(C语言)whwhile语句的执行过程为:语句的执行过程为:(1)计计算算并并判判断断表表达达式式的的值值。若若值值为为0,则则结结束束循循环环,退退出出while语句;若值为非语句;若值为非0,则执行循环体。,则执行循环体。(2)转步骤转步骤(1)。whilewhile语句的执行过程语句的执行过程2008-9-2621程序设计基础(C语言)wh 执行过程:执行过程:计算表达式并判断循环体=0非非02008-9-2622程序设计基础(C语言)wh#includevoidmain(void)inta=1,sum=0;while(a=100)sum+=a;a+;printf(

13、%d,sum);whilewhile语句语句-范例范例100例如例如:求求 nn=1注意注意“边界值边界值”的的选择选择!应有使循环趋于结应有使循环趋于结束的语句!束的语句!结果结果:Sum=50502008-9-2623程序设计基础(C语言)wh例:统计从键盘输入的一行字符的个数。例:统计从键盘输入的一行字符的个数。#includevoidmain(void)intnum=0;printf(请输入一行字符请输入一行字符:);while(getchar()!=n)num+;printf(共输入了共输入了%d个字符!个字符!,num);whilewhile语句语句-范例范例2008-9-2624

14、程序设计基础(C语言)whwhilewhile语句语句-范例范例例例:个位数是个位数是6,且能被,且能被3整除的整除的5位数共有多少个?位数共有多少个?#includevoidmain(void)longintn=10006;intcount=0;while(n=99999)if(n%3=0)count+;n+=10;printf(“count=%dn”,count);练习:练习:能被能被3整整除的除的3位偶数共位偶数共有多少个?有多少个?2008-9-2625程序设计基础(C语言)wh 例例利用辗转相除法,求两个正整数的利用辗转相除法,求两个正整数的最大公约数最大公约数算法:算法:1)若)若

15、J=0,则,则I为最大公约数为最大公约数2)若)若J不为不为0将将I除以除以J,余数为,余数为KI=J;J=K转转1)2008-9-2626程序设计基础(C语言)wh main()inti,j,temp;printf(“Enter2integers:”);scanf(“%d%d”,&i,&j);while(j)temp=i%j;i=j;j=temp;printf(“Gcd=%dn”,i);2008-9-2627程序设计基础(C语言)wh1.圆括号中的表达式可以是任意表达式,它仅用来测试表达式圆括号中的表达式可以是任意表达式,它仅用来测试表达式的结果值是零值还是非零值,用以决定循环进行的条件,的

16、结果值是零值还是非零值,用以决定循环进行的条件,称为称为“判终表达式判终表达式”,一般是关系表达式或逻辑表达式,与,一般是关系表达式或逻辑表达式,与条件语句一样可进行如下简化:条件语句一样可进行如下简化:while(x!=0)while(x)while(x=0)while(!x)WhileWhile语句语句-使用要点(使用要点(当型循环当型循环)2008-9-2628程序设计基础(C语言)wh2.当判终表达式为非零常量时,这样的当判终表达式为非零常量时,这样的while语句为无穷循环语句为无穷循环语句,如:语句,如:while(1)语句语句;/无穷循环语句无穷循环语句3.while语句的循环体

17、通常是一个复合语句,也可以是简单语语句的循环体通常是一个复合语句,也可以是简单语句,甚至可以是一个空语句。句,甚至可以是一个空语句。4.在循环体中应有使循环趋于结束的语句,以避免在循环体中应有使循环趋于结束的语句,以避免“死循环死循环”。WhileWhile语句语句-使用要点使用要点2008-9-2629程序设计基础(C语言)wh4.4 do-while4.4 do-while循环循环直到型循环直到型循环do-while循环通过循环通过do-while语句实现。语句实现。do-while语句的一般格式为:语句的一般格式为:do语句语句while(表达式表达式);2008-9-2630程序设计基

18、础(C语言)whdo-while语句的执行过程为:语句的执行过程为:(1)执行循环体语句。执行循环体语句。(2)计计算算并并判判断断表表达达式式的的值值。若若值值为为0,则则结结束束循循环环,退退出出while语句;若值为非语句;若值为非0,则转步骤,则转步骤(1)。do-whiledo-while语句的执行过程语句的执行过程2008-9-2631程序设计基础(C语言)wh 执行过程:执行过程:计算表达式并判断循环体=0非非02008-9-2632程序设计基础(C语言)wh#includevoidmain(void)inti,sum=0;i=1;dosum=sum+i;i+;while(i=1

19、00);printf(“%d”,sum);do-whiledo-while语句语句-范例范例100例如例如:求求 nn=1无论表达式的值是多无论表达式的值是多少,循环体至少执行少,循环体至少执行一次!一次!2008-9-2633程序设计基础(C语言)wh例例:个位数是个位数是6,且能被,且能被3整除的整除的5位数共有多少个?位数共有多少个?#includevoidmain()longintn=10006;intcount=0;doif(n%3=0)count+;n+=10;while(n=99999);printf(“count=%dn”,count);do-whiledo-while语句语句

20、-范例范例练习:练习:个位数个位数是奇数,且能是奇数,且能被被7整除的整除的4位位数共有多少个数共有多少个?2008-9-2634程序设计基础(C语言)whdo-whiledo-while语句与语句与whilewhile语句的本质区别语句的本质区别while语句是先计算并判断表达式的值。若其值为非语句是先计算并判断表达式的值。若其值为非0,则执,则执行循环体;若其值为行循环体;若其值为0,则退出循环。,则退出循环。do-while语句则首先执行循环体,然后再计算并判断表语句则首先执行循环体,然后再计算并判断表达式达式的值。因此,的值。因此,do-while语句至少要执行一次循环体。语句至少要执

21、行一次循环体。2008-9-2635程序设计基础(C语言)wh1.与与while语句类似,判终表达式可以是任意表达式,它仅用来测语句类似,判终表达式可以是任意表达式,它仅用来测试表达式的值是零值还是非零值,用以决定循环进行的条件试表达式的值是零值还是非零值,用以决定循环进行的条件.2.do-while语句的循环体既可以是一个复合语句,也可以是一个语句的循环体既可以是一个复合语句,也可以是一个简单语句。但即使循环体是一个简单语句,包围它的一对大括简单语句。但即使循环体是一个简单语句,包围它的一对大括号也不能省略。号也不能省略。do-whiledo-while语句语句-使用要点使用要点2008-9

22、-2636程序设计基础(C语言)wh4.5 4.5 跳转语句跳转语句4.5.1 continue4.5.1 continue语句语句continue语句用于提前结束循环中的一轮循环。当程语句用于提前结束循环中的一轮循环。当程序执行到序执行到continue语句时,就跳过循环中后面还未语句时,就跳过循环中后面还未执行的语句,回到循环的起始处,继续进行下一轮执行的语句,回到循环的起始处,继续进行下一轮的循环。的循环。continue语语句句常常与与if语语句句联联合合起起来来使使用用,以以便便在在满满足足一定条件时提前结束本轮循环。一定条件时提前结束本轮循环。功能功能:结束本次循环结束本次循环,接

23、着判定下一次是否接着判定下一次是否执行循环。执行循环。2008-9-2637程序设计基础(C语言)whcontinuecontinue语句语句-范例范例1 1例如,对除例如,对除5 5的倍数以外的的倍数以外的11001100的数求和。的数求和。s=0;for(i=1;i=100;i+)if(!(i%5)continue;s+=i;printf(SUM=%dn,s);2008-9-2638程序设计基础(C语言)wh例:把例:把100200之间的不能被之间的不能被3整除的数输出整除的数输出.#includevoidmain(void)intn;for(n=100;n=200;n+)if(n%3=0

24、)continue;printf(“%d”,n);continuecontinue语句语句-范例范例2 22008-9-2639程序设计基础(C语言)wh4.5.2 break4.5.2 break语句语句ISO/ANSIC+标准中规定的跳转语句有标准中规定的跳转语句有break语句、语句、continue语句、语句、return语句和语句和goto语句等。语句等。return语句将在语句将在第第6章介绍。章介绍。1.break语句的功能:用于从循环体内跳出循环体,即提前结语句的功能:用于从循环体内跳出循环体,即提前结束循环。束循环。2.使用要点:使用要点:break只能用在循环语句和只能用在

25、循环语句和switch语句中语句中.2008-9-2640程序设计基础(C语言)wh例例 如如 此循环本是无限循环,因加上了此循环本是无限循环,因加上了break语句,使程序在输入字符常量语句,使程序在输入字符常量!时就终止循环。时就终止循环。for(;)scanf(%c,&ch);if(ch=!)break;elseprintf(%c,ch);2008-9-2641程序设计基础(C语言)whfor(r=1;r100)break;printf(“%f”,area);breakbreak语句语句-范例范例1 1例例:计算计算r=1到到r=10的的圆面积圆面积,当面积大于当面积大于100时结束循环

26、时结束循环.2008-9-2642程序设计基础(C语言)whbreakbreak语句语句-范例范例2 2Break语句例语句例2:某银行利息某银行利息2.8%(以复利计)。假设某储户存以复利计)。假设某储户存入本金入本金8000元,当满足以下条件之一,储户从银行将钱取出。元,当满足以下条件之一,储户从银行将钱取出。(1)储蓄满)储蓄满10年年(2)连本带息超过)连本带息超过10000元元编程求储户会在第几年将钱取出,取出时连编程求储户会在第几年将钱取出,取出时连本带息是多少?本带息是多少?2008-9-2643程序设计基础(C语言)wh#includevoidmain()intyear;flo

27、atmoney=8000;for(year=1;year10000)break;printf(“%dyear%fn”,year,money);2008-9-2644程序设计基础(C语言)whcontinuecontinue与与breakbreak的比较的比较continue与与break的区别的区别:continue只结束本次循环只结束本次循环,而不是终止整个而不是终止整个循环。而循环。而break终止本层循环,不再会去判终止本层循环,不再会去判断执行循环体的条件是否成立。断执行循环体的条件是否成立。2008-9-2645程序设计基础(C语言)wh2008-9-2646程序设计基础(C语言)w

28、h 4.5.3 goto4.5.3 goto语句语句1、一般形式为、一般形式为:goto语句标号语句标号;2、例:、例:100#include求求 nvoidmain()n=1inti,sum=0;i=1;运行结果为运行结果为:5050loop:if(i=100)sum=sum+i;i+;gotoloop;printf(“%d”,sum);3、说明:目前、说明:目前goto语句很少使用语句很少使用,过多的使用过多的使用goto语句会降低语句会降低程序的可读性。程序的可读性。2008-9-2647程序设计基础(C语言)wh注意:注意:goto语句对结构程序设计有影响。它将使程语句对结构程序设计有

29、影响。它将使程序的结构不清晰。应尽可能用序的结构不清晰。应尽可能用break和和continue语句代替语句代替goto不能用不能用goto语句从循环的外层跳到循环的内语句从循环的外层跳到循环的内层,否则会导致程序的混乱。层,否则会导致程序的混乱。2008-9-2648程序设计基础(C语言)whgotogoto语句的举例:语句的举例:main()intx,y,z;for(x=1;x=32;x+)for(y=1;y=48;y+)z=100-x-y;if(z%3=0)&(3*x+2*y+z/3=100)printf(“hen=%d,cock=%d,chicken=%dn”,x,y,z);gotol

30、aber;laber:;结果:结果:hen=5cock=32chicken=63goto语句语句2008-9-2649程序设计基础(C语言)wh4.6 4.6 多重循环多重循环多重循环多重循环:嵌套多层循环结构的循环。嵌套多层循环结构的循环。外循环:外循环:处于外层的循环称为外循环。处于外层的循环称为外循环。内循环:内循环:处于内层的循环称为内循环。处于内层的循环称为内循环。2008-9-2650程序设计基础(C语言)wh121234567891011多重循环的等多重循环的等效效2008-9-2651程序设计基础(C语言)wh循环语句嵌套循环语句嵌套#includevoidmain(void)

31、inti,j;for(i=1;i=3;i+)for(j=1;j=8;j+)putchar(*);printf(n);例例输出图形输出图形*2008-9-2652程序设计基础(C语言)wh循环语句嵌套循环语句嵌套例例:编写一个九九编写一个九九乘法表的程序乘法表的程序A方式:方式:#includevoidmain()inti,j;/*定义两个下标变量定义两个下标变量i和和j*/for(i=1;i=9;i+)for(j=1;j=9;j+)printf(%4d,i*j);printf(n);2008-9-2653程序设计基础(C语言)whA A方式运行结果:方式运行结果:123456789246810

32、12141618369121518212427481216202428323651015202530354045612182430364248547142128354249566381624324048566472918273645546372812008-9-2654程序设计基础(C语言)wh循环语句嵌套循环语句嵌套例例:编写一个编写一个九九乘法九九乘法表的程序表的程序方式方式B:#includestdio.hvoidmain()inti,j;for(i=1;i10;i+)for(j=1;j10;j+)printf(%d*%d=%-4d,i,j,i*j);printf(n);2008-9-2

33、655程序设计基础(C语言)whB B方式运行结果:方式运行结果:1*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=92*1=22*2=42*3=62*4=82*5=102*6=122*7=142*8=162*9=183*1=33*2=63*3=93*4=123*5=153*6=183*7=213*8=243*9=274*1=44*2=84*3=124*4=164*5=204*6=244*7=284*8=324*9=365*1=55*2=105*3=155*4=205*5=255*6=305*7=355*8=405*9=456*1=66*2=126*3=1

34、86*4=246*5=306*6=366*7=426*8=486*9=547*1=77*2=147*3=217*4=287*5=357*6=427*7=497*8=567*9=638*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=648*9=729*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=812008-9-2656程序设计基础(C语言)wh循环语句嵌套循环语句嵌套例例:编写一个九九编写一个九九乘法表的程序乘法表的程序C方式分析:九九方式分析:九九乘乘法表分法表分9行行,第第i行共行共i个小项。个小

35、项。i*ji=1,2,9j=1,2,i#includevoidmain(void)inti,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(“%d*%d=%-4d”,i,j,i*j);printf(“n”);2008-9-2657程序设计基础(C语言)whC C方式运行结果:方式运行结果:1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=165*1=5 5*2=10 5*3=15 5*4=20 5*5=256*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=367*1=7 7*2

36、=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=498*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=649*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=812008-9-2658程序设计基础(C语言)wh 例例输出下面图案输出下面图案ABCDEBCDECDEDEE#include“stdio.h”main()inti;charch;for(i=0;i5;i+)for(ch=A+i;chA+5;ch+)printf(“%c”,ch);printf(

37、“n”);2008-9-2659程序设计基础(C语言)wh多多重重循循环环举举例例 main()intx,y,z,flag=0;for(x=1;x=32;x+)for(y=1;y=i+1)if(l5)printf(“%dt”,n);l+;elseprintf(“%dn”,n);l=0;#include“math.h”main()intn,m,i,j,l=0;scanf(“%d”,&m);for(n=2;n=m;n+)i=sqrt(n);for(j=2;j=a&c=A&c=0&c=9)digit+;elseother+;printf(字母数:字母数:%dn空格数:空格数:%dn数字数:数字数:%

38、dn其他字符数:其他字符数:%dn,letters,space,digit,other);2008-9-2664程序设计基础(C语言)wh应用举例应用举例应用例应用例2:假定小兔子一个月就可以长成大兔子,而大兔子每假定小兔子一个月就可以长成大兔子,而大兔子每个月都会生出一对小兔子。如果年初养了一对小兔子,问到个月都会生出一对小兔子。如果年初养了一对小兔子,问到年底时将有多少对兔子年底时将有多少对兔子?(当然得假设兔子没有死亡而且严格当然得假设兔子没有死亡而且严格按照上述规律长大与繁殖按照上述规律长大与繁殖)2008-9-2665程序设计基础(C语言)wh应用举例应用举例兔子问题分析表兔子问题分

39、析表1月月2月月3月月 4月月 5月月 6月月 7月月 8月月 9月月10月月11月月12月月小小兔兔111235813213455大大兔兔1123581321345589合合计计11235813213455891442008-9-2666程序设计基础(C语言)wh应用举例应用举例 每一个月份的兔子总数与上一个月每一个月份的兔子总数与上一个月的数字有什么联系?的数字有什么联系?“兔子问题兔子问题”很容易列出一条递推式而得到解很容易列出一条递推式而得到解决。假设第决。假设第N个月的兔子数目是个月的兔子数目是F(N),我,我们有:们有:Fibonacci数列满足以下递推关系:数列满足以下递推关系:

40、f(1)=1f(2)=1f(n)=f(n-1)+f(n-2)2008-9-2667程序设计基础(C语言)wh#includestdio.hvoidmain()longf1=1,f2=1;inti;printf(按每月增长,兔子总对数组成的数列为:按每月增长,兔子总对数组成的数列为:n);for(i=1;i=20;i+)printf(%8Ld%8Ld,f1,f2);if(i%4=0)printf(n);f1=f1+f2;f2=f2+f1;printf(n);2008-9-2668程序设计基础(C语言)wh运行结果:运行结果:按每月增长,兔子总对数组成的数列为:1 1 2 3 5 8 13 21

41、34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 21783093524578 5702887 9227465 1493035224157817 3908816963245986 1023341552008-9-2669程序设计基础(C语言)whn课堂练习:课堂练习:1、有一堆零件(、有一堆零件(100200之间),如果分成之间),如果分成4个零件一组个零件一组的若干组,则多两个零件;若分成的若干组,则

42、多两个零件;若分成7个零件一组,则多个零件一组,则多3个个零件;若分成零件;若分成9个零件一组,则多个零件一组,则多5个零件。请编程求这堆个零件。请编程求这堆零件的总数。零件的总数。2、编程统计用数字、编程统计用数字09可以组成多少个没有重复数字的可以组成多少个没有重复数字的3位位偶数。偶数。2008-9-2670程序设计基础(C语言)wh课堂练习:课堂练习:3、用、用100元人民币换成元人民币换成1元、元、2元、元、5元的所有兑换方案。元的所有兑换方案。4、从、从3个红球、个红球、5个白球、个白球、6个黑球中任意取出个黑球中任意取出8个球,且其中个球,且其中必须有白球,输出所有可能的方案。必

43、须有白球,输出所有可能的方案。2008-9-2671程序设计基础(C语言)wh课堂练习:课堂练习:5、每个苹果、每个苹果0.8元,第一天买两个苹果;从第二天开始,每元,第一天买两个苹果;从第二天开始,每天买前一天的天买前一天的2倍,直至购买的苹果个数达到不超过倍,直至购买的苹果个数达到不超过100的的最大值,编写程序求每天平均花多少钱。最大值,编写程序求每天平均花多少钱。6、一个球从、一个球从100m高度自由落下,每次落地后反跳回原来高高度自由落下,每次落地后反跳回原来高度的一半,再落下。求它在第度的一半,再落下。求它在第10次落地时,共经过多少米次落地时,共经过多少米?第第10次反弹多高?次

44、反弹多高?2008-9-2672程序设计基础(C语言)wh本章小结本章小结 for语句是一个功能最强的循环语句。语句是一个功能最强的循环语句。for语句和语句和while语句是先判断表达式后再执行循环体的语句是先判断表达式后再执行循环体的循环语句。因此,有可能一次循环体也不执行。循环语句。因此,有可能一次循环体也不执行。do-while循环是先执行循环体后再判断表达式的循环语循环是先执行循环体后再判断表达式的循环语句,通常用它来完成必须句,通常用它来完成必须至少执行一次循环体的操作。至少执行一次循环体的操作。2008-9-2673程序设计基础(C语言)wh本章小结本章小结(续)续)在多重循环中,外循环变化慢,内循环变化快,外循环一在多重循环中,外循环变化慢,内循环变化快,外循环一次,内循环就要循环几次。次,内循环就要循环几次。break语句用于从内循环跳到外循环,使循环提前结束。但语句用于从内循环跳到外循环,使循环提前结束。但它只能跳一层循环,不能跳多层循环。它只能跳一层循环,不能跳多层循环。continue语句用于跳过其后的语句,使本轮循环提前结束。语句用于跳过其后的语句,使本轮循环提前结束。2008-9-2674程序设计基础(C语言)wh

展开阅读全文
相关资源
相关搜索

当前位置:首页 > pptx模板 > 企业培训

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com