C课件Ch8B章节课堂

上传人:大米 文档编号:579724919 上传时间:2024-08-27 格式:PPT 页数:69 大小:1.54MB
返回 下载 相关 举报
C课件Ch8B章节课堂_第1页
第1页 / 共69页
C课件Ch8B章节课堂_第2页
第2页 / 共69页
C课件Ch8B章节课堂_第3页
第3页 / 共69页
C课件Ch8B章节课堂_第4页
第4页 / 共69页
C课件Ch8B章节课堂_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《C课件Ch8B章节课堂》由会员分享,可在线阅读,更多相关《C课件Ch8B章节课堂(69页珍藏版)》请在金锄头文库上搜索。

1、本章要点本章要点循环语句循环语句while语句语句/dowhile语句语句/for语句语句循环条件循环条件计数器控制循环计数器控制循环/标记控制循环标记控制循环循环嵌套循环嵌套循环中的跳转循环中的跳转break语句语句/continue语句语句/goto语句语句2教书育人结构化程序只由三种基本结构组成结构化程序只由三种基本结构组成控制结构控制结构 - 用于控制程序的执行流程用于控制程序的执行流程顺序顺序(sequence)选择选择(selection)重复重复(repetion)if结构结构(单项选择单项选择)if/else结构结构(双项选择双项选择)switch结构结构(多项选择多项选择)w

2、hile结构结构do/while结构结构for结构结构 控制结构控制结构3教书育人8.1理解循环结构理解循环结构求求2n的问题的问题循环概念循环概念为解决某一问题,或求取某一计算结果,为解决某一问题,或求取某一计算结果,特定的条件下特定的条件下,程序中反复按某一模式进行操作。程序中反复按某一模式进行操作。4教书育人循环概念循环概念8.1理解循环结构理解循环结构求求2n的问题的问题k=1,s=1kn?s=s*2k=k+1计数计数器器为解决某一问题,或求取某一计算结果,为解决某一问题,或求取某一计算结果,特定的条件下特定的条件下,程序中反复按某一模式进行操作。程序中反复按某一模式进行操作。5教书育

3、人循环概念循环概念为解决某一问题,或求取某一计算结果,为解决某一问题,或求取某一计算结果,特定的条件下特定的条件下,程序中反复按某一模式进行操作。程序中反复按某一模式进行操作。设计循环结构要点设计循环结构要点需要重复哪些的步骤,即循环体中的操作;需要重复哪些的步骤,即循环体中的操作;需要合理设计循环条件,使循环不无限次执行;需要合理设计循环条件,使循环不无限次执行;修改循环条件,使循环条件的值趋近修改循环条件,使循环条件的值趋近0。8.1理解循环结构理解循环结构6教书育人 循环体的算法循环体的算法? 循环的条件、循环结束条件循环的条件、循环结束条件? 如何修改循环条件如何修改循环条件?8.1理

4、解循环结构理解循环结构循环结构两种基本类型循环结构两种基本类型当型循环当型循环直到型循环直到型循环7教书育人8.2循环语句循环语句while(表达式表达式)语句语句;do语句语句;while(表达式表达式);for(表达式表达式1;表达式表达式2;表达式表达式3)语句语句;8教书育人语句形式语句形式while(表达式表达式)循环体循环体; 逻辑表达式逻辑表达式决定是否执行循环体决定是否执行循环体表达式值为逻辑表达式值为逻辑true则执行循环体则执行循环体重复执行的操作重复执行的操作直至直至表达式表达式的值为的值为false8.2.1while语句语句9教书育人8.2.1while语句语句算法步

5、骤算法步骤1.在循环结构外设置条件变量在循环结构外设置条件变量2.测试循环条件,测试循环条件,若其值为假则执行步骤(若其值为假则执行步骤(6););3.执行循环体中的语句;执行循环体中的语句;4.更新条件变量的值;更新条件变量的值;5.重复(重复(2)()(4)步骤)步骤6.结束循环结束循环while(表达式表达式)循环体循环体; 10教书育人例例8.1用用while语句实现求语句实现求1100的和的和 循环条件?循环条件?循环结束条件?循环结束条件?修改循环条件?修改循环条件?inti=1,sum=0;while(i=100)sum=sum+i;i+;printf(sum=%dn,sum);

6、11教书育人例例8.1用用while语句实现求语句实现求1100的和的和 循环条件?循环条件?循环结束条件?循环结束条件?修改循环条件?修改循环条件?inti=1,sum=0;while(i=100)sum=sum+i;i+;printf(sum=%dn,sum);可以写成:可以写成:sum+=i;i+;或:或:sum+=i+; 如果写成如果写成 ?sum + = + + i ;12教书育人语句形式与执行流程语句形式与执行流程8.2.2do语句语句do循环体循环体while(表达式表达式);); dowhile为直到型循环为直到型循环至少执行一次循环体内的语句至少执行一次循环体内的语句! 13

7、教书育人例例8.2用用dowhile语句实现求语句实现求1100的和的和 intsum=0,i=1;do/*循环体循环体*/sum+=i;i+;while(i=100);printf(sum=%dn,sum);14教书育人语句形式语句形式8.2.3for语句语句 for ( 表达式表达式1; 表达式表达式2 ; 表达式表达式3 ) 循环体循环体 ; 关键字关键字初始表达式初始表达式循环后置表达式循环后置表达式循环控制循环控制逻辑表达式逻辑表达式for(循环变量赋值循环变量赋值;循环条件循环条件;修改循环变量修改循环变量)循环体语句循环体语句15教书育人执行流程执行流程8.2.3for语句语句

8、for ( 表达式表达式1; 表达式表达式2 ; 表达式表达式3 ) 循环体循环体 ; 1.求解表达式求解表达式1;2.求解表达式求解表达式2;3.若其值为逻辑真,则执行循环体中的语句;若其值为逻辑真,则执行循环体中的语句;若其值为假则结束循环,转到第(若其值为假则结束循环,转到第(6)步;)步;4.求解表达式求解表达式3;5.重复执行步骤(重复执行步骤(2)、()、(3)、()、(4)中的操作;)中的操作;6.循环结束,执行循环结束,执行for语句后的语句。语句后的语句。16教书育人例例8.2求求1100的和的和 intsum=0,i;for(i=1;i100;i+)sum+=i;intsu

9、m=1,i;for(i=2;i100;i+)sum+=i;17教书育人 不同形式的不同形式的 for 语句结构语句结构(1)inti=1;/缺省表达式缺省表达式1for(;in)break;/缺省表达式缺省表达式2等价于等价于for(i=1;1;i+)(3)for(i=1;i=n;)sum=sum+i;i+;/缺省表达式缺省表达式3(4)for(i=1;i=n;sum+=i+);/缺省循环体缺省循环体for语句分号不能省分号不能省8.2.3for语句语句18教书育人(5)i=1;for(;i=n;)sum=sum+i+; /缺省表达式缺省表达式1、3(7)i=1;for(sum=0;i=n;i

10、+)sum=sum+i;/表达式表达式1、2、3可以为任何表达式可以为任何表达式for语句分号不能省分号不能省(8)for(i=1; sum+=i+, ,in)break;/缺省全部缺省全部 for 的表达式的表达式 不同形式的不同形式的 for 语句结构语句结构8.2.3for语句语句(9 )for(i=1;i=100;sum+=i+);19教书育人for语句8.2.4三种循环语句的比较三种循环语句的比较3种循环一般可以互相代替种循环一般可以互相代替,区别如下区别如下:(1)用)用while和和do-while循环时,循环变量初始化在循环时,循环变量初始化在while和和do-while语句

11、之前,语句之前,for语句可以在表达式语句可以在表达式1中实现循环变量的初始中实现循环变量的初始化。化。(2)while和和do-while循环,循环体中应包括使循环趋于结束的循环,循环体中应包括使循环趋于结束的语句。语句。for语句可以在表达式语句可以在表达式3中实现。中实现。(3)for语句和语句和while语句一般用来实现当型循环,循环体可能一语句一般用来实现当型循环,循环体可能一次也不执行;次也不执行;do-while语句构成的直到型循环,循环体至少执语句构成的直到型循环,循环体至少执行一次行一次.20教书育人例例8.3求求2的的n次幂,分别用三种语句实现。次幂,分别用三种语句实现。i

12、ntpower=1,i=1;while(i=n)power*=2;i+;intpower=1,i=1;dopower*=2;i+;while(i=n);for(i=0,power=1;i0):);scanf(%d%d,&base,&exp);for(counter=0;counterexp;counter+)power*=base;printf(%d的的%d次幂为次幂为%dn,base,exp,power);25教书育人例例8.4求求m的的n次幂次幂intpower=1,base,exp,counter=0;for(;counterexp;counter+)power*=base;counte

13、r=1,power=base;while(counterexp)power*=base;+counter;注意控制循环次数,注意控制循环次数,循环计数器变量的初循环计数器变量的初值决定循环表达式的值决定循环表达式的构造方法。构造方法。26教书育人8.3.2标记控制循环标记控制循环对于执行次数不确定的循环,对于执行次数不确定的循环,采用标志控制循环的方法。采用标志控制循环的方法。常根据用户的输入决定循环是否继续。常根据用户的输入决定循环是否继续。设置并检测标志变量,若其值满足某个条件,设置并检测标志变量,若其值满足某个条件,则重复循环体操作,否则循环结束。则重复循环体操作,否则循环结束。在标记循

14、环中使用事先指定的特殊值作为标记。在标记循环中使用事先指定的特殊值作为标记。该特殊值不能与一般数据相混淆该特殊值不能与一般数据相混淆!for(i=0;(c=getchar()!=n;i+);printf(“%d”,i);27教书育人例例8.5求若干人的平均收入求若干人的平均收入doublesalary=0,sum=0;intcounter=0;/*循环次数循环次数*/printf(Pleaseentersalary(-1toend):);scanf(%lf,&salary);while(salary!=-1)sum+=salary;+counter;printf(Pleaseentersala

15、ry(-1toend):);scanf(%lf,&salary);printf(Average=%5.2fn,sum/counter);28教书育人例例8.5求若干人的平均收入求若干人的平均收入while(salary!=-1)scanf(%lf,&salary);sum+=salary;+counter;doscanf(%lf,&salary);sum+=salary;+counter;while(salary!=-1);逻辑问题逻辑问题?29教书育人8.4循环嵌套循环嵌套循环嵌套:循环嵌套:一个循环体中又包含另一个完整的循环结构。一个循环体中又包含另一个完整的循环结构。多层循环:内嵌的循环

16、中还可以嵌套循环。多层循环:内嵌的循环中还可以嵌套循环。30教书育人8.4循环嵌套循环嵌套各种循环语句都可以互相嵌套各种循环语句都可以互相嵌套while、do-while和和for三种循环语句可分别构成三种循环语句可分别构成嵌套结构嵌套结构(1)while()(2)do(3)for(;)while()dofor(;)while();while();31教书育人8.4循环嵌套循环嵌套各种循环语句都可以互相嵌套各种循环语句都可以互相嵌套三种循环语句也可以相互嵌套,三种循环语句也可以相互嵌套,即在即在while循环、循环、do-while循环和循环和for循环体内,循环体内,包含上述任一循环结构。包

17、含上述任一循环结构。 (4)while( ) (5) for(;) (6) do do while( ) for(;) while( ) ; while( ); 32教书育人内外循环执行顺序内外循环执行顺序/测试循环执行次数测试循环执行次数printf(itjn-n);for(i=1;i=3;i+)/ 外循环外循环for(j=1;j=3;j+)/ 内循环内循环printf(“%dt%dn”,i,j);printf(“-n”);i j-1 11 213-2 12 233-3 13 233-8.4循环嵌套循环嵌套33教书育人设计嵌套的循环体要点设计嵌套的循环体要点合理设计和安排各个循环的嵌套关系,

18、合理设计和安排各个循环的嵌套关系, 在保证逻辑正确性;在保证逻辑正确性; 嵌套的循环最好采用右缩进格式书写;嵌套的循环最好采用右缩进格式书写;内层和外层循环控制变量不应同名;内层和外层循环控制变量不应同名;循环嵌套不能交叉,即在一个循环体内必须完循环嵌套不能交叉,即在一个循环体内必须完整的包含着另一个循环整的包含着另一个循环 8.4循环嵌套循环嵌套34教书育人例例8.6计算宿舍楼居住的总人数。计算宿舍楼居住的总人数。假设该宿舍楼共假设该宿舍楼共3层,层,每层每层6个房间,个房间,输入每个房间中居住的人数,输入每个房间中居住的人数,输出整个楼居住的总人数。输出整个楼居住的总人数。算法用双层循环嵌

19、套实现:算法用双层循环嵌套实现:内层循环计算?内层循环计算?外层循环计算?外层循环计算?35教书育人例例8.6计算宿舍楼居住的总人数。计算宿舍楼居住的总人数。total=0;for(i=1;i=N;i+)/*外层循环外层循环*/printf(第第%d层层:n,i);sum=0;for(j=1;j=M;j+)/*内循环内循环*/printf(输入输入%d号房间人数号房间人数:,j);scanf(%d,&number);sum+=number;printf(本层共本层共%d人人n,sum);total+=sum;printf(本楼共本楼共%d人人n,total);思考思考:每层楼房间的数目不确定每

20、层楼房间的数目不确定?每个宿舍楼的层数不确定?每个宿舍楼的层数不确定?思考思考:放在外层循环前面如放在外层循环前面如何?他是谁的初始化何?他是谁的初始化条件条件36教书育人*例例 输出简单字符图形的双重循环输出简单字符图形的双重循环分析:分析:该图形一共该图形一共1010行,每一行增加一个字符,行,每一行增加一个字符,应循环应循环1010次,每次输出一行,循环为次,每次输出一行,循环为:行行iM个数个数 1 1 1 2 2 2 10 10 10for(i=110)for(i=110) 第第第第i i行:行:行:行:i i个星号,个星号,个星号,个星号,for(j=1i)for(j=1i)输出输

21、出输出输出* *输出换行输出换行输出换行输出换行 37教书育人例例 显示输出如下所示的三角形显示输出如下所示的三角形 分析:分析: 行号行号 空格数空格数 * *数数 * * 0 5 10 5 1 * * 1 4 31 4 3 * * 2 3 52 3 5 * * 3 2 73 2 7 * * 4 1 94 1 9 * * 5 0 115 0 11i5-i2*i+138教书育人1.输出乘法口诀表或输出输出乘法口诀表或输出ASCII码表。(模码表。(模板板4)39教书育人跳转语句可用于控制程序的转移,在选择结构和跳转语句可用于控制程序的转移,在选择结构和循环结构中协助改变程序执行的流程。循环结构

22、中协助改变程序执行的流程。break语句语句contiune语句语句goto语句语句8.5循环中的跳转循环中的跳转while()/*外层循环外层循环*/for()/*内层循环内层循环*/if()break;语句语句while()/*外层循环外层循环*/for()/*内层循环内层循环*/if()continue;语句语句40教书育人8.5.1break语句语句break语句语句 常用于提前从循环退出或跳出常用于提前从循环退出或跳出switch结构。结构。无条件地结束无条件地结束switch、while、dowhile或或for循环循环结构,结构,转向执行该结构的后续语句转向执行该结构的后续语句。

23、while(表达式表达式1)语句语句1if(表达式表达式2)break;语句语句2语句语句341教书育人8.5.1break语句语句break语句语句 常用于提前从循环推出或跳出常用于提前从循环推出或跳出switch结构。结构。无条件地结束无条件地结束switch、while、dowhile或或for循环循环结构,结构,转向执行该结构的后续语句转向执行该结构的后续语句。for(表达式表达式1;1;表达式表达式3)循环体语句循环体语句if(表达式表达式2)break;42教书育人/quitsystemwhile(1)printf(“Doyouwanttoquit?(y/n):”);scanf(“

24、%c”,&ch);if(ch=nN)break;应用实例应用实例inputpinforclientschoice=getchar();getchar();if(choice=nch=N)break;逻辑问题?逻辑问题?8.5.1break语句语句break语句语句 43教书育人例例8.7判断素数判断素数分析:分析:素数是只能被素数是只能被1和它本身整除的数。和它本身整除的数。若判断整数若判断整数m是否为素数,是否为素数,需要寻找可能整除需要寻找可能整除m的因子的因子i(2m-1的整数)的整数)。如果都除不尽则如果都除不尽则m为素数;为素数;只要有一个因子能整除只要有一个因子能整除m,该数就不是

25、素数。,该数就不是素数。 for(i=2m)if(m能被能被i整除整除)跳出循环跳出循环if(循环执行循环执行m-2次次)m是素数是素数else(循环提前结束)(循环提前结束)m不是素数不是素数44教书育人例例8.7判断素数判断素数for(i=2;im;i+)if(m%i=0)break;/*判断素数判断素数*/if(i=m)/*循环循环m-1次次*/printf(%disaprime.n,m);else/*提前跳出循环提前跳出循环*/printf(%disnotaprime.n,m);能否优化能否优化?45教书育人算法优化:算法优化:若若m不是素数,不是素数,有有m=i*j,令令i=j,则则

26、i= 例例8.7判断素数判断素数46教书育人例例8.7判断素数判断素数标志控制循环标志控制循环intflag=1;doublek=sqrt(m);/*添加头文件添加头文件math.h*/for(i=2;ik&flag;i+)/*寻找寻找m的因子的因子i*/if(m%i=0)flag=0;/*判断素数判断素数*/if(flag)/*遍历循环遍历循环*/printf(%disaprime.n,m);else/*提前跳出循环提前跳出循环*/printf(%disnotaprime.n,m);47教书育人8.5.2continue语句语句continue语句用来跳过循环的一部分,继续执语句用来跳过循环

27、的一部分,继续执行下一轮循环操作。它并不跳出整个循环结构,行下一轮循环操作。它并不跳出整个循环结构,而是跳过本循环中剩余的语句,结束本轮循环。而是跳过本循环中剩余的语句,结束本轮循环。continue语句只用在循环体中,语句只用在循环体中,常与常与if条件语句一起使用,用来加速循环。条件语句一起使用,用来加速循环。while(表达式表达式1)语句语句1if(表达式表达式2)continue;语句语句2语句语句348教书育人8.5.2continue语句语句for(i=1;n100;n+)if(n%3!=0)continue;printf(“n=%dn”,n);for(i=1;n100;n+)i

28、f(n%3=0)printf(“n=%dn”,n);包含包含continue的循环结构,代码的可读性不好,的循环结构,代码的可读性不好,可以用其他形式代替该跳转语句。可以用其他形式代替该跳转语句。continue一般是用条件判断执行的一般是用条件判断执行的,并不是必须的并不是必须的;通过将判断条件取反通过将判断条件取反,可以免去可以免去continue的使用的使用,以构筑良好的程序风格。以构筑良好的程序风格。49教书育人8.5.3goto语句语句goto语句一般为无条件跳转语句,语句一般为无条件跳转语句,程序直接跳转到标号所指示的语句。程序直接跳转到标号所指示的语句。一般形式一般形式goto标

29、号标号;标号标号:语句;语句;.使用跳转能力强的使用跳转能力强的goto语句语句可以直接从内层循环中直接跳到外层循环后可以直接从内层循环中直接跳到外层循环后50教书育人8.5.3goto语句语句for(inti=0;i5;i+)for(intj=0;j5;j+)if(i=3&j=3)gotolabel; printf(“continue.”);label:printf(“over”);goto语句常用于一次跳出多重循环语句常用于一次跳出多重循环51教书育人 inta;gotoInit;Forward:a=a+1;Print:printf(“%d”,a);gotoDown;Init:a=1;go

30、toPrint;Down:if(a0,hens0,chicken0,chicken%3=0cockshenschicken54教书育人例例“百鸡问题百鸡问题”8.6案例分析案例分析穷举法穷举法:考虑全部可能性,然后从这些可能性考虑全部可能性,然后从这些可能性中按条件逐一排查,直到得出某个结论。中按条件逐一排查,直到得出某个结论。方法一方法一:用多层循环结构分别列举各种鸡个数,:用多层循环结构分别列举各种鸡个数,选择结构将满足条件的数目输出选择结构将满足条件的数目输出for(公鸡数目所有可能情况公鸡数目所有可能情况)for(母鸡数目所有可能情况母鸡数目所有可能情况)for(小鸡数目所有可能情况小

31、鸡数目所有可能情况)if(满足方程满足方程1且且满足方程满足方程2且满足方程且满足方程3)输出可能结果输出可能结果55教书育人例例“百鸡问题百鸡问题”8.6案例分析案例分析穷举法穷举法:考虑全部可能性,然后从这些可能性考虑全部可能性,然后从这些可能性中按条件逐一排查,直到得出某个结论。中按条件逐一排查,直到得出某个结论。方法二方法二:用多层循环分别列举出各种鸡的个数,:用多层循环分别列举出各种鸡的个数,排除所有不可能组合排除所有不可能组合for(分别列举出公、母、雏的所有可能个数分别列举出公、母、雏的所有可能个数)/*为多重循环为多重循环*/if(不满足方程不满足方程1)continue;if

32、(不满足方程不满足方程2)continue;if(不满足方程不满足方程3)continue;输出满足所有条件的各种鸡的数目输出满足所有条件的各种鸡的数目56教书育人思路一:思路一:intcocks,hens,chicken;for(cocks=1;cocks100;+cocks)for(hens=1;hens100;+hens)for(chicken=3;chicken100;chicken+=3)if(5*cocks+3*hens+chicken/3=100/*百鸡百鸡*/&cocks+hens+chicken=100)/*百钱百钱*/printf(cocks=%d,hens=%d,chic

33、ken=%dn,cocks,hens,chicken);57教书育人思路一:优化算法思路一:优化算法for(cocks=1;cocks20;+cocks)for(hens=1;hens33;+hens)chicken=100-cocks-hens;/*百鸡百鸡*/if(5*cocks+3*hens+chicken/3=100&chicken%3=0)/*百钱百钱*/printf(cocks=%d,hens=%d,chicken=%dn,cocks,hens,chicken);58教书育人思路二:思路二:for(cocks=1;cocks20;+cocks)for(hens=1;hens=10-

34、6)累加当前项累加当前项sum+=term;求下一项值求下一项值term级数8.6案例分析案例分析60教书育人例例 利用泰勒级数逼近利用泰勒级数逼近sin(x)的值的值 算法:求算法:求term的值是问题的关键,的值是问题的关键,2种方案种方案1)通项法:用归纳找出通项的表达式,第)通项法:用归纳找出通项的表达式,第n项可表示为项可表示为term=(-1)n-1x2n-1/(2n-1)!2)递推法:递推法:若前一项为若前一项为term,则用迭代算法得到当前项为,则用迭代算法得到当前项为-term*x*x/(n+1)(n+2)级数8.6案例分析案例分析61教书育人#include#include

35、#definePI3.14159intmain()doubledegree,x,sum,term;intn=1;scanf(“%lf”,°ree);x=degree*PI/180;sum=x;term=x;while(fabs(term)=1e-6)term=-term*x*x/(n+1)*(n+2);sum+=term;n+=2;printf(“迭代迭代%d次次n”,n/2);printf(“sin(%.sf)=%.5fn”,x,sum);return0;62教书育人例例 求两个正整数求两个正整数 m 和和 n 的最大公约数的最大公约数穷举法:穷举法:从从1min(m,n)中寻找最大的

36、中寻找最大的i,使得使得m%i=0& n%i=08.6案例分析案例分析优化算法优化算法-辗转相除法:辗转相除法:当当mn时,时,m与与n的最大公约数等于的最大公约数等于n和和m%n的最大公约数;的最大公约数;当当n =0时,时,m和和n的最大公约数等于的最大公约数等于m 。63教书育人a=m,b=n,r=m%n;while(r!=0)a bb rra%bb是最大公约数是最大公约数2496abra % ba % b辗转相除法辗转相除法:当当mn,m与与n的最大公约数等于的最大公约数等于n和和m%n的最大公约数;的最大公约数;当当n=0,m和和n的最大公约数等于的最大公约数等于m。963abr6

37、63 30 0abrmm(a a)n n(b b) 3 是是 24 和和 9 的最大公约数的最大公约数例例 求两个正整数求两个正整数 m 和和 n 的最大公约数的最大公约数64教书育人从从1到到100之间任意找一个整数,请参加游戏的人猜。之间任意找一个整数,请参加游戏的人猜。如果猜对了则结束游戏,否则输出提示信息,告诉如果猜对了则结束游戏,否则输出提示信息,告诉游戏者所猜的数太大还是太小,直到游戏者猜对为游戏者所猜的数太大还是太小,直到游戏者猜对为止。统计猜测的次数,以此来反映猜数者的水平。止。统计猜测的次数,以此来反映猜数者的水平。编写程序实现该游戏,要求程序自动生成一个随机编写程序实现该游

38、戏,要求程序自动生成一个随机数作为被猜数,游戏者通过键盘输入猜测的数字,数作为被猜数,游戏者通过键盘输入猜测的数字,游戏结束后输出猜字的次数和游戏得分,猜测次数游戏结束后输出猜字的次数和游戏得分,猜测次数越多得分越少。越多得分越少。例例猜数游戏猜数游戏8.6案例分析案例分析65教书育人例例猜数游戏猜数游戏8.6案例分析案例分析分析分析:1、自动生成一个、自动生成一个100以内的自然数,产生随机数的函数以内的自然数,产生随机数的函数rand()1001,头文件头文件stdlib。函数函数srand的为函数的为函数rand设置随机种子。设置随机种子。 2、根据游戏规则,、根据游戏规则,用选择结构实

39、现比较判断机制。用选择结构实现比较判断机制。3、玩家继续的输入操作,直到答案正确才能终止游戏,、玩家继续的输入操作,直到答案正确才能终止游戏,并输出猜字的次数。显然应选用循环结构设计该程序并输出猜字的次数。显然应选用循环结构设计该程序 。66教书育人例例猜数游戏猜数游戏8.6案例分析案例分析(1)生成目标数据,即待猜测的数据)生成目标数据,即待猜测的数据magic;(2)输入猜测值)输入猜测值guess,猜测次数,猜测次数counter增增1。(3)比较猜测值和答案)比较猜测值和答案magic,若若guessmagic,则输出则输出”太大太大!”;若若guessmagic,则这输出,则这输出“太小太小!”。(4)若)若guessmagic重复执行步骤(重复执行步骤(1)()(3););直到直到guess=magic,结束循环。结束循环。(5)输出猜测次数)输出猜测次数counter。算法步骤:算法步骤:67教书育人例例猜数游戏猜数游戏8.6案例分析案例分析流程图:流程图:选择合适的基本结构选择合适的基本结构并合理设计其嵌套关并合理设计其嵌套关系。系。68教书育人1.计算并输出所有把一张计算并输出所有把一张100元面值的钱换元面值的钱换成成1元、元、2元、元、5元面值的钱的换法。(模元面值的钱的换法。(模板板5)69教书育人

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号