《循环嵌套》教学课件_第1页
《循环嵌套》教学课件_第2页
《循环嵌套》教学课件_第3页
《循环嵌套》教学课件_第4页
《循环嵌套》教学课件_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

第4章循环控制?C语言程序设计?

课程讲义第4章循环控制?C语言程序设计?课程讲义1上一章节课程回忆1、break、continue语句Break完毕整个循环,并退出。Continue完毕当次循环,继续下一次循环。上一章节课程回忆1、break、continue语句Brea2本次课内容:循环的嵌套〔多重循环〕本次课内容:循环的嵌套〔多重循环〕34.6循环嵌套当循环体中又包含了另一个完整的循环语句时–––称为循环的嵌套。for循环

while循环

do-while循环

三种结构可以互相嵌套注意:1、三种循环可互相嵌套,层数不限。2、外层循环可包含两个以上内循环,但不能相互穿插。4.6循环嵌套当循环体中又包含了另一个完整的循环语句时––4这种在一个循环体内又包含循环构造称为循环嵌套。内层循环体中再包含新循环构造称为多重循环嵌套。i=1;while(i<=1000){k=1;while(k<=5){prinf(“w〞);k++;}i++;}(2)do{……do{……}while();…...}while();这种在一个循环体内又包含循环构造称为循环嵌套。内层循环体5(3)while(){……do{do{……}while();

}while();…….}(4)for(;;){……do{……}while();……while(){……}…...}内循环外循环内循环(3)while()(4)for(;;)内循环外6但以下循环:while(){…while(){}}for(;;){for(;;){…}}不能理解为正确的形式。要注意语句的包含关系。但以下循环:while()for(;;)不能理解7例1编写程序:在一行内输出整数1到20,并连续输出5行。#include"stdio.h"main(){inti,j;for(i=1;i<=5;i++)/*一共五行*/{for(j=1;j<=20;j++)/*每一行输出的内容*/ {printf("%d",j);}printf(“\n〞);/*输完一行,换另一行*/}}4.6多重循环

例1编写程序:在一行内输出整数1到20,并连续输出5行。48例2编写程序输出以下图形:122333444455555666666777777788888888999999999例2编写程序输出以下图形:9#include"stdio.h"main(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d",i);printf("\n");}}#include"stdio.h"10【例3】在屏幕上输出下三角九九乘法表。程序如下:main(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}【例3】在屏幕上输出下三角九九乘法表。11运行结果如下:1*1=12*1=22*2=43*1=33*2=63*3=94*1=44*2=84*3=124*4+165*1=55*2=105*3=155*4=205*5=256*1=66*2=126*3=186*4=246*5=306*6=367*1=77*2=147*3=217*4=287*5=357*6=427*7=498*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=649*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81运行结果如下:12真真外循环初始条件内循环初始条件内循环体外循环条件假内循环条件假内循环循环条件外循环循环条件循环完毕二重循环嵌套构造执行流程真真外循环初始条件内循环初始条件内循环体外循环条件假内循环条13例4:输出图形:****************编程分析:采用双重循环,一行一行输出。图形题目,输出步骤:一般3步。1〕确定行数for〔k=1;k<=4;k++)3〕每输完一行光标换行(\n)2〕输出每行的图形。主要是确定每行中的图形个数i与行号k的关系。例如此题:共4行,假设行号用k表示,那么每一行有2*k-1个*号。for〔i=1;i<=2*k-1;i++〕printf(“*〞);例4:输出图形:*编程14#include"stdio.h"main(){intk,i;for(k=1;k<=4;k++){for(i=1;i<=4-k;i++)putchar(‘’);for(i=1;i<=2*k-1;i++)printf(“*〞);printf(“\n〞);}}#include"stdio.h"15【例5】使用二重for循环编程打印以下图形。@@@@@@@@@@@@@@@@@@@@@@@@@【例5】使用二重for循环编程打印以下图形。16main(){inti,j,k;for(i=1;i<=5;i++){for(j=4;j>=i;j--)printf("");/*打印一个空格*/for(k=1;k<=2*i-1;k++)printf("@");printf("\n");}}main()17打印由“*〞号组成的三角形。main(){intk=1,j;while(k<=5){j=1;while(j<=k){printf(“*〞);j++;}printf(“\n〞);k++;}}***************

输出结果为:多重循环的执行过程为:外循环跨一步,内循环转一圈k=1时,j=1输出1个*号k=2时,j=1~2输出2个*号k=3时,j=1~3输出3个*号k=4时,j=1~4输出4个*号k=5时,j=1~5输出5个*号【例6】打印由“*〞号组成的三角形。main()*输出结果为:多重18#include“stdio.h〞main(){intsum=0;charch;while(1){ch=getchar();if(ch==‘*’)break;if(ch>=‘A’&&ch<=‘Z’)sum++;}printf(“sum=%d〞,sum);}编程:从键盘上连续输入字符,并统计其中大写字母的个数,直到输入“*〞字符完毕。出口:当输入的字符是“*〞号时,退出循环是大写字母就计数例【7】#include“stdio.h〞编程:从键盘上连续输入19练习给定n的值,求1+(1+2)+(1+2+3)+…+(1+2+…+n)的和。分析:本例是一个数列求和,要认真观察数列中数列项变化的规律,在此例中,数列项是一个不断变化的求和,所以数列项的求取必须使用循环语句,整个数列的求和也需要一个循环,所以此例必须使用循环的嵌套。

练习给定n的值,求20练习输出如下的图形:############################练习输出如下的图形:21练习判断下面程序的运行结果,并说明原因。main(){inti;for(i=1;i<=5;i++)switch(i){case1:printf(“i=1\n〞);continue;case2:i=1;case3:printf(“i=3\n〞);i+=2;continue;case4:printf(“i=%d\n〞,i++);break;}printf(“i=%d\n〞,i++);}练习判断下面程序的运行结果,并说明原因。22练习输出如以下图形:122333444455555练习输出如以下图形:23练习输出如以下图形:122333444455555练习输出如以下图形:24以下程序的结果是:main(){inti,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++)printf(“〞);for(k=0;k<=2*i;k++)printf(“*〞);printf(“\n〞);}}以下程序的结果是:main()25第4章循环控制?C语言程序设计?

课程讲义第4章循环控制?C语言程序设计?课程讲义26上一章节课程回忆1、break、continue语句Break完毕整个循环,并退出。Continue完毕当次循环,继续下一次循环。上一章节课程回忆1、break、continue语句Brea27本次课内容:循环的嵌套〔多重循环〕本次课内容:循环的嵌套〔多重循环〕284.6循环嵌套当循环体中又包含了另一个完整的循环语句时–––称为循环的嵌套。for循环

while循环

do-while循环

三种结构可以互相嵌套注意:1、三种循环可互相嵌套,层数不限。2、外层循环可包含两个以上内循环,但不能相互穿插。4.6循环嵌套当循环体中又包含了另一个完整的循环语句时––29这种在一个循环体内又包含循环构造称为循环嵌套。内层循环体中再包含新循环构造称为多重循环嵌套。i=1;while(i<=1000){k=1;while(k<=5){prinf(“w〞);k++;}i++;}(2)do{……do{……}while();…...}while();这种在一个循环体内又包含循环构造称为循环嵌套。内层循环体30(3)while(){……do{do{……}while();

}while();…….}(4)for(;;){……do{……}while();……while(){……}…...}内循环外循环内循环(3)while()(4)for(;;)内循环外31但以下循环:while(){…while(){}}for(;;){for(;;){…}}不能理解为正确的形式。要注意语句的包含关系。但以下循环:while()for(;;)不能理解32例1编写程序:在一行内输出整数1到20,并连续输出5行。#include"stdio.h"main(){inti,j;for(i=1;i<=5;i++)/*一共五行*/{for(j=1;j<=20;j++)/*每一行输出的内容*/ {printf("%d",j);}printf(“\n〞);/*输完一行,换另一行*/}}4.6多重循环

例1编写程序:在一行内输出整数1到20,并连续输出5行。433例2编写程序输出以下图形:122333444455555666666777777788888888999999999例2编写程序输出以下图形:34#include"stdio.h"main(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d",i);printf("\n");}}#include"stdio.h"35【例3】在屏幕上输出下三角九九乘法表。程序如下:main(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}【例3】在屏幕上输出下三角九九乘法表。36运行结果如下:1*1=12*1=22*2=43*1=33*2=63*3=94*1=44*2=84*3=124*4+165*1=55*2=105*3=155*4=205*5=256*1=66*2=126*3=186*4=246*5=306*6=367*1=77*2=147*3=217*4=287*5=357*6=427*7=498*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=649*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81运行结果如下:37真真外循环初始条件内循环初始条件内循环体外循环条件假内循环条件假内循环循环条件外循环循环条件循环完毕二重循环嵌套构造执行流程真真外循环初始条件内循环初始条件内循环体外循环条件假内循环条38例4:输出图形:****************编程分析:采用双重循环,一行一行输出。图形题目,输出步骤:一般3步。1〕确定行数for〔k=1;k<=4;k++)3〕每输完一行光标换行(\n)2〕输出每行的图形。主要是确定每行中的图形个数i与行号k的关系。例如此题:共4行,假设行号用k表示,那么每一行有2*k-1个*号。for〔i=1;i<=2*k-1;i++〕printf(“*〞);例4:输出图形:*编程39#include"stdio.h"main(){intk,i;for(k=1;k<=4;k++){for(i=1;i<=4-k;i++)putchar(‘’);for(i=1;i<=2*k-1;i++)printf(“*〞);printf(“\n〞);}}#include"stdio.h"40【例5】使用二重for循环编程打印以下图形。@@@@@@@@@@@@@@@@@@@@@@@@@【例5】使用二重for循环编程打印以下图形。41main(){inti,j,k;for(i=1;i<=5;i++){for(j=4;j>=i;j--)printf("");/*打印一个空格*/for(k=1;k<=2*i-1;k++)printf("@");printf("\n");}}main()42打印由“*〞号组成的三角形。main(){intk=1,j;while(k<=5){j=1;while(j<=k){printf(“*〞);j++;}printf(“\n〞);k++;}}***************

输出结果为:多重循环的执行过程为:外循环跨一步,内循环转一圈k=1时,j=1输出1个*号k=2时,j=1~2输出2个*号k=3时,j=1~3输出3个*号k=4时,j=1~4输出4个*号k=5时,j=1~5输出5个*号【例6】打印由“*〞号组成的三角形。main()*输出结果为:多重43#include“stdio.h〞main(){intsum=0;charch;while(1){ch=getchar();if(ch==‘*’)break;if(ch>=‘A’&&ch<=‘Z’)sum++;}printf(“sum=%d〞,sum);}编程:从键盘上连续输入字符,并统计其中大写字母的个数,直到输入“*〞字符完毕。出口:当输入的字符是“*〞号时,退出循环是大写字母就计数例【7】#include“stdio.h〞编程:从键盘上连续输入44练习给定n的值,求1+(1+2)+(1+2+3)+…+(1+2+…+n)的和。分析:本例是一个数列求和,要认真观察数列中数列项变化的规律,在此例中,数列项是一个不断变化的求和,所以数列项的求取必须使用循环语句,整个数列的求和也需要一个循环,所以此例必须使用循环的嵌套。

练习给定n的值,求45练习输出如下的

温馨提示

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

评论

0/150

提交评论