第07讲循环结构程序设计

上传人:cl****1 文档编号:589164431 上传时间:2024-09-10 格式:PPT 页数:25 大小:408.03KB
返回 下载 相关 举报
第07讲循环结构程序设计_第1页
第1页 / 共25页
第07讲循环结构程序设计_第2页
第2页 / 共25页
第07讲循环结构程序设计_第3页
第3页 / 共25页
第07讲循环结构程序设计_第4页
第4页 / 共25页
第07讲循环结构程序设计_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《第07讲循环结构程序设计》由会员分享,可在线阅读,更多相关《第07讲循环结构程序设计(25页珍藏版)》请在金锄头文库上搜索。

1、9/10/20241 Program Design in C LanguagePage第七讲第七讲第五章第五章 循环结构程序设计循环结构程序设计循环结构程序设计循环结构程序设计 嵌套循环结构嵌套循环结构continue 语句和语句和 break 语句语句goto语句语句9/10/20242 Program Design in C LanguagePage在一个循环体内又包含另一个或多个完整在一个循环体内又包含另一个或多个完整的循环结构,称为循环的嵌套。的循环结构,称为循环的嵌套。说明:说明:(1) 嵌套原则嵌套原则: 不允许交叉。不允许交叉。(2) 循循环与分支可以相互嵌套但不允许交叉。环与分

2、支可以相互嵌套但不允许交叉。5.4 嵌套循环结构 9/10/20243 Program Design in C LanguagePage* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *输出图形:输出图形:程序段:程序段:for(i=1;i=4;i+) printf(* * * * * * * *); printf(n); 5.4 嵌套循环结构 9/10/20244 Program Design in C LanguagePage其中语句:其中语句:printf(* * * * * * * *);等价于等价于for(j=1;j

3、=8;j+) printf(* );于是构成了二重循环语句:于是构成了二重循环语句:for(i=1;i=4;i+) for(j=1;j=8;j+) printf(* ); printf(n);5.4 嵌套循环结构 9/10/20245 Program Design in C LanguagePage 上面的例子中:上面的例子中: 外循环由循环控制变量外循环由循环控制变量i控制,控制,i由由1递增到递增到4。for(i=1;i=4;i+) for(j=1;j=8;j+) printf(* ); printf(n);每执行每执行1次外循环,都要执行由循环控制变量次外循环,都要执行由循环控制变量j控

4、制的控制的8次内循环操作和次内循环操作和1次换行操作。次换行操作。5.4 嵌套循环结构 9/10/20246 Program Design in C LanguagePageint n=1, i, j;while(n=3) printf(输出外循环输出外循环 n=%dn, n); i=1; while(i=2) printf(1)输出内循环输出内循环 i=%dn, i); i+; j=1; while(j=3) printf(2)输出内循环输出内循环 j=%dn, j); j+; n+;例例 读程序,写出运行结果。读程序,写出运行结果。5.4 嵌套循环结构 9/10/20247 Program

5、 Design in C LanguagePage输出结果:输出结果:5.4 嵌套循环结构 9/10/20248 Program Design in C LanguagePage对每对每1行而言,列编号从行而言,列编号从1行编号行编号行行编编号号从从19 例例 输出输出九九乘法表九九乘法表1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9 1*9=9 2*9=18 9*9=815.4 嵌套循环结构 9/10/20249 Program Design in C LanguagePage#includevoid main( ) int i ,j; /* i表示行编号,表示行编号,j

6、表示列编号表示列编号 */ for(i=1; i=9; i+) for(j=1; j=i; j+) printf(%d*%d=%-2d , j, i, j*i); printf ( n); 5.4 嵌套循环结构 9/10/202410 Program Design in C LanguagePage例例 输出如下图形:输出如下图形: * * * * * * * * * * * * * * * * *5.4 嵌套循环结构 行行编编号号从从15 对每对每1行而言,行而言,*个数为个数为2行编号行编号-1基准行基准行对每对每1行而言,空格个数为行而言,空格个数为5 - 行编号行编号9/10/2024

7、11 Program Design in C LanguagePage#includevoid main( ) int i,j,k; /* i表示行编号,表示行编号,j表示空格个表示空格个 数,数,k表示表示*个数个数 */ for(i=1; i=5; i+) for(j=1; j=5-i; j+) printf( ); for(k=1; k=2*i-1; k+) printf(*); printf(n); 5.4 嵌套循环结构 9/10/202412 Program Design in C LanguagePage1、continue语句语句格式:格式:continue;功能:结束本次循环,

8、直接使程序回到循功能:结束本次循环,直接使程序回到循环控制条件重新判断。环控制条件重新判断。注意:注意:continue语句只能用于循环结构。语句只能用于循环结构。5.5 continue语句和break语句 9/10/202413 Program Design in C LanguagePage例例 对除对除5的倍数以外的的倍数以外的1100的数求和。的数求和。#includevoid main( ) int i, s=0; for(i=1; i=100; i+) if(!(i%5) continue; /* i是是5的倍数则结束本次循环的倍数则结束本次循环 */ s+=i; /* i不是不

9、是5的倍数则进行求和的倍数则进行求和 */ printf(s=%dn, s);5.5 continue语句和break语句 9/10/202414 Program Design in C LanguagePage#includevoid main( ) int i, cnt=0; for(i=1; i=50; i+) if(i%3=0) continue; printf(%dt, i); cnt+; printf(ntotal: %dn,cnt);例例 统计统计150之间不能被之间不能被3整除的数的个数并输出这些数。整除的数的个数并输出这些数。5.5 continue语句和break语句 9/

10、10/202415 Program Design in C LanguagePage格式:格式:break;功能:功能:立即终止循环语句的执行,执行后立即终止循环语句的执行,执行后续语句。续语句。2、break语句语句注意:注意:(1) break语句只能用在语句只能用在switch语句和循环语句和循环语句中。语句中。 (2) break只能跳出直接包含它的循环语只能跳出直接包含它的循环语句(或者直接包含它的句(或者直接包含它的switch语句)。语句)。5.5 continue语句和break语句 9/10/202416 Program Design in C LanguagePage例例

11、统计输入的字符个数并输出它们,以统计输入的字符个数并输出它们,以“!”终止。终止。#includevoid main( ) char ch; int cnt=0; while(1) ch=getchar( ); if(ch=!) break; cnt+; printf(%c, ch); printf(n字符个数字符个数=%dn, cnt);5.5 continue语句和break语句 9/10/202417 Program Design in C LanguagePage例例 输出输出3100中的所有素数。中的所有素数。分析:分析:1) 对于某整数对于某整数n,如果不能被如果不能被2n/2中的

12、任何整数中的任何整数所整除所整除,则该整数为素数,否则该整数为合数。则该整数为素数,否则该整数为合数。上述描述可用一个上述描述可用一个for语句来表示语句来表示: for(i=2; i=n/2; i+) if(n%i=0) break;表示只要表示只要n能被能被2n/2中任何一个整数所整除,则中任何一个整数所整除,则n一定为合数,素数判断过程立即终止。一定为合数,素数判断过程立即终止。2) 对于对于3100之间的整数之间的整数,可以表示如下:可以表示如下:for (n=3; n=100; n+)5.5 continue语句和break语句 9/10/202418 Program Design

13、in C LanguagePage#includevoid main( ) int n, i; for(n=3; n=100; n+) for (i=2; in/2) /* 条件满足则条件满足则n为素数为素数 */ printf(%dt, n); printf(n);5.5 continue语句和break语句 9/10/202419 Program Design in C LanguagePage格式:格式: goto 标号标号; 标号标号: 语句语句作用:使程序流程无条件转向标号所标示作用:使程序流程无条件转向标号所标示的位置。的位置。5.6 goto语句和语句标号的使用 9/10/202

14、420 Program Design in C LanguagePage#includevoid main( ) int n=3, i; L1: if(n=100) i=2; L2: if(in/2) printf(%dt, n); n+; goto L1; 例例 输出输出3100中的所有素数。中的所有素数。5.6 goto语句和语句标号的使用 9/10/202421 Program Design in C LanguagePage说明:说明:1) goto语句为无条件转向语句,可与语句为无条件转向语句,可与if语语句配合形成循环结构。句配合形成循环结构。2) 在循环结构中可使用在循环结构中可

15、使用goto语句来一次跳语句来一次跳出多层循环。出多层循环。3) 标号的命名规则同变量名。标号的命名规则同变量名。4) goto语句不符合结构化程序设计原则,语句不符合结构化程序设计原则,一般不主张使用。一般不主张使用。5.6 goto语句和语句标号的使用 9/10/202422 Program Design in C LanguagePage#includevoid main( ) int i, j, k; for(i=1; i=4; i+) for(j=1; j=4; j+) for(k=1; k=4; k+) if(i!=j&j!=k&i!=k) printf(%dt, i*100+j*

16、10+k); printf(n);程序举例 例例 输出由输出由1、2、3、4四个数字组成的互不相四个数字组成的互不相同且无重复数字的三位数。同且无重复数字的三位数。9/10/202423 Program Design in C LanguagePage程序举例 例例 中国古代数学家张丘建在他的算经中中国古代数学家张丘建在他的算经中提出了著名的提出了著名的“百钱买百鸡问题百钱买百鸡问题”:鸡翁一,:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?百钱买百鸡,问翁、母、雏各几何?请编写程序求解该问题。请编写程序求解该问题。9/

17、10/202424 Program Design in C LanguagePage#includevoid main( ) int cock, hen, chick; for(cock=0; cock=20; cock+) for(hen=0; hen=33; hen+) chick=100-cock-hen; if(chick%3=0&cock*5+hen*3+chick/3=100) printf(cock=%dthen=%dtchick=%dn, cock,hen,chick); 程序举例 9/10/202425 Program Design in C LanguagePage上机实验内容:上机实验内容:熟悉嵌套循环结构,熟悉嵌套循环结构,continue和和break语句语句;实验教程实验教程第第5 5章章 实验二、实验三实验二、实验三

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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