《循环嵌套》PPT课件

《循环嵌套》PPT课件

ID:38836854

大小:378.82 KB

页数:25页

时间:2019-06-20

上传者:U-145848
《循环嵌套》PPT课件_第1页
《循环嵌套》PPT课件_第2页
《循环嵌套》PPT课件_第3页
《循环嵌套》PPT课件_第4页
《循环嵌套》PPT课件_第5页
资源描述:

《《循环嵌套》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

第4章循环控制《C语言程序设计》课程讲义 上一章节课程回顾1、break、continue语句Break结束整个循环,并退出。Continue结束当次循环,继续下一次循环。 本次课内容:循环的嵌套(多重循环) 4.6循环嵌套当循环体中又包含了另一个完整的循环语句时–––称为循环的嵌套。for循环while循环do-while循环三种结构可以互相嵌套注意:1、三种循环可互相嵌套,层数不限。2、外层循环可包含两个以上内循环,但不能相互交叉。 这种在一个循环体内又包含循环结构称为循环嵌套。内层循环体中再包含新循环结构称为多重循环嵌套。i=1;while(i<=1000){k=1;while(k<=5){prinf(“w”);k++;}i++;}(2)do{……do{……}while();…...}while(); (3)while(){……do{do{……}while();}while();…….}(4)for(;;){……do{……}while();……while(){……}…...}内循环外循环内循环 但以下循环:while(){…while(){}}for(;;){for(;;){…}}不能理解为正确的形式。要注意语句的包含关系。 例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(“ ”);/*输完一行,换另一行*/}}4.6多重循环 例2编写程序输出下列图形:122333444455555666666777777788888888999999999 #include"stdio.h"main(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d",i);printf(" ");}} 【例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(" ");}} 运行结果如下: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 真真外循环初始条件内循环初始条件内循环体外循环条件假内循环条件假内循环循环条件外循环循环条件循环结束二重循环嵌套结构执行流程 例4:输出图形:****************编程分析:采用双重循环,一行一行输出。图形题目,输出步骤:一般3步。1)确定行数for(k=1;k<=4;k++)3)每输完一行光标换行( )2)输出每行的图形。主要是确定每行中的图形个数i与行号k的关系。例如本题:共4行,若行号用k表示,则每一行有2*k-1个*号。for(i=1;i<=2*k-1;i++)printf(“*”); #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(“ ”);}} 【例5】使用二重for循环编程打印下列图形。@@@@@@@@@@@@@@@@@@@@@@@@@ main(){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(" ");}} 打印由“*”号组成的三角形。main(){intk=1,j;while(k<=5){j=1;while(j<=k){printf(“*”);j++;}printf(“ ”);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】 #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】 练习给定n的值,求1+(1+2)+(1+2+3)+…+(1+2+…+n)的和。分析:本例是一个数列求和,要认真观察数列中数列项变化的规律,在此例中,数列项是一个不断变化的求和,所以数列项的求取必须使用循环语句,整个数列的求和也需要一个循环,所以此例必须使用循环的嵌套。 练习输出如下的图形:############################ 练习判断下面程序的运行结果,并说明原因。main(){inti;for(i=1;i<=5;i++)switch(i){case1:printf(“i=1 ”);continue;case2:i=1;case3:printf(“i=3 ”);i+=2;continue;case4:printf(“i=%d ”,i++);break;}printf(“i=%d ”,i++);} 练习输出如下图形:122333444455555 练习输出如下图形:122333444455555 下列程序的结果是: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(“ ”);}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭