5.10循环语句的嵌套_第1页
5.10循环语句的嵌套_第2页
5.10循环语句的嵌套_第3页
5.10循环语句的嵌套_第4页
5.10循环语句的嵌套_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.10循环语句的嵌套TeacherteachingdesignCONTENTS

目录自主学习明确考点案例分析交流提升课后作业自我提升仿真演练,体验探索提出问题引入新课PART013、如何进行数位分解及如何分解质因数?4、同构数、水仙花数、质数(素数)、完全数(完数)等各自的算法是?5、如何求某个数的阶乘?6、如何编辑图案(三角形(等腰三角形、直角三角形)、平等四边形、菱形等?提出问题引入新课提出问题引入新课1、如何求任意两个数的最大公约数、最小公倍数?2、什么是例举法(枚举法)?自主学习明确考点PART02考点一、循环语句的结构分析及注意事项1.以下程序段的循环次数是。a=-3;while(1){a++;if(!a)break;}⑴注意,如果在while后面的圆括号中使用了值为非0的表达式或常量,则在循环体中必须采取有效措施,使循环正常结束,否则会导致程序进入死循环。易错问题:提出问题引入新课自主学习明确考点考点一、循环语句的结构分析及注意事项:2.以下程序段的输出结果是。inti,sum=0;for(i=0;i<9;i+=2);sum=sum+i;printf(“sum=%d”,sum);程序:⑴初学者容易在for循环后的圆括号“)”后面加上分号,从而使空语句成为循环语句。⑵误认为当i的值为9时退出循环。程序中每执行一次循环体,i的值均增加2,所以i的变化值应为0、2、4、6、8、10。易错问题:误认为break语句结束所有层循环。而break语句只是提前结束内层的for循环。易错问题:3.以下程序段输出结果是

。inti,j;for(i=0;i<2;i++){for(j=1;j<3;j++)if(i!=j)break;elseprintf(“i=j=%d”,j);}考点一、循环语句的结构分析及注意事项:1自主学习明确考点以下程序段的输出结果是

。inti,sum=0;for(i=0;i<10;i++){if((i%3)==0)continue;sum=sum+i;}printf(“sum=%d\n”,sum);考点一、循环语句的结构分析及注意事项:误认为continue语句将提前结束整个循环,而continue是提前结束本次循环。易错问题:自主学习明确考点下面程序的运行结果是()main(){inti,b,k=0;for(i=1;i<=5;i++){b=i%2;while(b-->=0)k++;}printf("%d,%d",k,b);}考点一、循环语句的结构分析及注意事项:1容易忽略while(b--)语句中条件表达式值的改变问题。易错问题:自主学习明确考点案例分析交流提升PART03#include<stdio.h>main(){inti,j,k;for(i=1;i<=9;i++)for(j=1;j<=12;j++)for(k=2;k<36;k+=2){if(4*i+3*j+k/2==36)printf("menis%dwomenis%dchildrenis%d\n",i,j,k);}}案例分析明确算法【例1】、36块砖,36人搬,男搬4,女搬3,两个小孩子抬一块,要求一次搬完,问男,女,小孩各需多少?一、例举法

设任取的红球个数为i,白球个数为j,则黒球个数为8-i-j,根据题意红球和白球个数的取值范围是0~3,在红球和白球个数确定的条件下,黒球个数取值应为8-i-j<=6。若一个口袋中放有12个球,其中有3个红的。3个白的和6个黒的,问从中任取8个共有多少种不同的颜色搭配?*程序说明与注释案例分析明确算法三色球问题#include<stdio.h>voidmain(){inti,j,count=0;printf("REDBALLWHITEBALLBLACKBALL\n");

for(i=0;i<=3;i++)/*循环控制变量i控制任取红球个数0à3*/for(j=0;j<=3;j++)/*循环控制变量j控制任取白球个数0à3*/if((8-i-j)<=6)printf("%2d:%d%d%d\n",++count,i,j,8-i-j);}*程序说明与注释#include<stdio.h>voidmain(){

intx,y,z,count=0;

printf("

Men

Women

Children\n");

printf("........................................\n");

for(x=0;x<=10;x++)

{y=20-2*x;

/*x定值据(3)式求y*/

z=30-x-y;

/*由(1)式求z*/

if(3*x+2*y+z==50)/*当前得到的一组解是否满足式(2)*/

printf("%2d:

%d

%d

%d\n",++count,x,y,z);

}}*程序说明与注释

设x,y,z分别代表男人、女人和小孩。按题目的要求,可得到下面的方程:

x+y+z=30

(1)

3x+2y+z=50

(2)

用方程程序求此不定方程的非负整数解,可先通过(2)-(1)式得:

2x+y=20

(3)由(3)式可知,x变化范围是0~10题目分析与算法设计马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人?马克思手稿中的数学题案例分析明确算法

用一元人民币兑换成1分、2分和5分硬币,共有多少种不同的兑换方法。*题目分析与算法设计换分币根据题意设i,j,k分别为兑换的1分、2分、5分硬币所具有的钱数(分),则i,j,k的值应满足:i+j+k=100分析1案例分析明确算法#include<stdio.h>voidmain(){

inti,j,k,count=1;

printf("Therearefollwingsmallexchangeplansfor1Yuannote:\n");

for(i=0;i<=100;i++)/*i为1分硬币钱数,可取值0,1,2...,100*/

for(j=0;j<=100-i;j+=2)/*j为2分硬币钱数,可取0值,2,4,...,100*/

for(k=0;k<=100-i-2*j;k+=5)

/*k为5分硬币钱数*/

if(i+j+k==100)

printf(count%4?"%d:1*%d+2*%d+5*%d\t":"%d:1*%d+2*%d+5*%d\n",count++,i,j/2,k/5);}程序源代码2【例5】、输出9*9口诀(直角三角形样式)。打印图案问题分行与列考虑,共9行9列,i控制行,j控制列。.程序分析#include<stdio.h>voidmain(){ inti,j,s; for(i=1;i<10;i++)//i控制打印的行数。 { for(j=1;j<=i;j++)//j控制打印的列数 { s=j*i; printf("%d*%d=%d\t",j,i,s);//控制打印的格式 } printf("\n");//每打印完一行,换行。 }}程序源代码案例分析明确算法可用双重循环控制整个图案的输出。若用循环变量i,j分别控制外层,内层循环,则i的取值从1到4,表示行数,在每行中要确定前面空格个数和星号个数,空格个数是4-i,星号个数是2*i-1。算法分析:***************打印如下图案#include<stdio.h>voidmain(){inti,j;for(i=1;i<=4;i++)//控制打印的行数。{for(j=1;j<=4-i;j++)//先打印空格,观察空格数的规律为4-iprintf("");for(j=1;j<=2*i-1;j++)//打印星号,观察星号数的规律为2*i-1printf("*");printf("\n");//打印完一行,打印换行。}}算法代码:案例分析明确算法从图案中找出行数,空格数,星号数间的关系如下:行数空格数星号数131223315407i4-i2*i-1#include<stdio.h>voidmain(){inti,j;for(i=1;i<=4;i++)//控制打印1到4等边三角形的行数。{for(j=1;j<=4-i;j++)//先打印空格,观察1到4等边三角空格数的规律为4-iprintf("");for(j=1;j<=2*i-1;j++)//打印星号,观察1到4等边三角星号数的规律为2*i-1printf("*");printf("\n");//打印完一行,打印换行。}for(i=1;i<=3;i++)//控制打印5到7等边三角形的行数。{for(j=1;j<=i;j++)//先打印空格,观察5到7等边三角空格数的规律为行数iprintf("");for(j=1;j<=7-2*i;j++)//打印星号,观察5到7等边三角星号数的规律为7-2*iprintf("*");printf("\n");//打印完一行,打印换行。}}程序代码*************************打印如下图案先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。程序分析:案例分析明确算法输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。统计问题程序分析利用while语句,条件为输入的字符不为'\n'.案例分析明确算法程序代码#include"stdio.h"main(){charc;intletters=0,space=0,digit=0,others=0;printf("pleaseinputsomecharacters\n");while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>='A'&&c<='Z')letters++;elseif(c=='')space++;elseif(c>='0'&&c<='9')digit++;elseothers++;}printf("allinall:char=%dspace=%ddigit=%dothers=%d\n",letters,space,digit,others);}按照题目的要求造出一个前两位数相同、后两位数相同且相互间又不同的整数,然后判断该整数是否是另一个整数的平方。问题分析与算法设计1#include<stdio.h>#include<math.h>voidmain(){

inti,j,k,c;

for(i=1;i<=9;i++)

/*i:车号前二位的取值*/

for(j=0;j<=9;j++)

/*j:车号后二位的取值*/

if(i!=j)

/*判断二位数字是否相异*/

{k=i*1000+i*100+j*10+j;/*计算出可能的整数*/

for(c=31;c*c<k;c++);

/*判断该数是否为另一整数的平方*/

if(c*c==k)printf("Lorry--No.is%d.\n",k);/*若是,打印结果*/

}}2

一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论