C语言 CH6循环结构

上传人:枫** 文档编号:592286725 上传时间:2024-09-20 格式:PPT 页数:27 大小:407KB
返回 下载 相关 举报
C语言 CH6循环结构_第1页
第1页 / 共27页
C语言 CH6循环结构_第2页
第2页 / 共27页
C语言 CH6循环结构_第3页
第3页 / 共27页
C语言 CH6循环结构_第4页
第4页 / 共27页
C语言 CH6循环结构_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《C语言 CH6循环结构》由会员分享,可在线阅读,更多相关《C语言 CH6循环结构(27页珍藏版)》请在金锄头文库上搜索。

1、第六章第六章循环结构程序设计循环结构程序设计(一)(一)1第六章第六章 循环结构程序设计循环结构程序设计思考思考求求1100的累加和。的累加和。分析分析换一种思路:换一种思路:sum=1+2+100;首先设置一个累计器首先设置一个累计器sum,其初值为其初值为0,利用,利用sum += n来计算(来计算(n依次取依次取1、2、100),只),只要解决以下要解决以下3个问题即可:个问题即可: (1)将)将n的初值置为的初值置为1; (2)每执行)每执行1次次“sum += n;”后,后,n增增1; (3)当)当n增到增到101时,停止计算。此时,时,停止计算。此时,sum的值就是的值就是1100

2、的累计和。的累计和。sum=sum+n;2一、一、goto语句语句二、二、while语句语句三、三、do-while语句语句四、四、for语句语句五、五、break、continue语句语句六、几种循环的比较六、几种循环的比较主要内容主要内容第六章第六章 循环结构程序设计循环结构程序设计3格式格式goto 语句标号语句标号说明说明(1) 与与if 语句一起构成循环结构。语句一起构成循环结构。(2) 不符合结构化程序设计原则,一般不用。不符合结构化程序设计原则,一般不用。P106#include void main() int n=1, sum=0; loop: sum += n; n+; if

3、 (n=100) goto loop; printf(“sum=%dn”, sum); 举例举例使用使用goto语句与分语句配合构成循环结构,实现求语句与分语句配合构成循环结构,实现求1100的累加和。的累加和。作用:使系统转向标号所在的语句行执行。作用:使系统转向标号所在的语句行执行。标号的定名规则标号的定名规则与变量名相同。与变量名相同。一、一、goto语句语句第六章第六章 循环结构程序设计循环结构程序设计4格式格式while (表达式表达式) 循环体语句循环体语句 P107说明说明1、循环体如果包含一个以上的语句,必须使用复合语句形式。、循环体如果包含一个以上的语句,必须使用复合语句形式

4、。2、在循环体中,必须有使循环条件趋向于不满足(假)的语句。、在循环体中,必须有使循环条件趋向于不满足(假)的语句。3、先判断表达式,后执行语句。、先判断表达式,后执行语句。 ?含义含义当表达式为真(非当表达式为真(非0值)时,执行值)时,执行while语句中的内嵌语句。语句中的内嵌语句。执行执行过程过程表达式表达式循环体语句循环体语句假假 真真 循环体语句循环体语句当当表达式值为真表达式值为真N-S图表示图表示二、二、while语句语句第六章第六章 循环结构程序设计循环结构程序设计5sum= 55举例举例求求110的累加和。的累加和。 i=1 sum=0当当i=10sum=sum+ii+输出

5、输出suminclude void main() int i,sum; i=1; sum=0; while (i=10) sum=sum+i; i+; printf(“sum=%5dn”,sum);思考思考1、如果去掉循环体中的大括号,执行过程将会怎样变化?、如果去掉循环体中的大括号,执行过程将会怎样变化?2、在循环体中,使循环条件趋向于不满足(假)的语句是哪条、在循环体中,使循环条件趋向于不满足(假)的语句是哪条??1 求求15的累加和的累加和.2 求求110的奇数和的奇数和.3 求求110的偶数和的偶数和.二、二、while语句语句第六章第六章 循环结构程序设计循环结构程序设计6格式格式d

6、o 循环体语句循环体语句while (表达式表达式);P108说明说明1、循环体如果包含一个以上的语句,必须使用复合语句形式。、循环体如果包含一个以上的语句,必须使用复合语句形式。2、在循环体中,必须有使循环条件趋向于不满足(假)的语句。、在循环体中,必须有使循环条件趋向于不满足(假)的语句。3、先执行循环体语句,后判断表达式的值。、先执行循环体语句,后判断表达式的值。 ?含义含义执行执行do-while语句中的内嵌语句,直到表达式为假(语句中的内嵌语句,直到表达式为假(0)才跳出循环。)才跳出循环。执行执行过程过程表达式表达式循环体语句循环体语句假假真真循环体语句循环体语句当当表达式值为真表

7、达式值为真N-S图表示图表示至少执至少执行一次行一次三、三、do-while语句语句第六章第六章 循环结构程序设计循环结构程序设计7sum= 55举例举例求求110的累加和。的累加和。 include void main() int i,sum; i=1; sum=0; do sum=sum+i; i+; while (i=10); printf(“sum=%5dn”,sum);i=1 sum=0当当i10)输出输出sumsum=sum+ii+思考思考1、如果去掉循环体中的大括号,执行过程将会怎样变化?、如果去掉循环体中的大括号,执行过程将会怎样变化?2、在循环体中,使循环条件趋向于不满足(假

8、)的语句是哪条、在循环体中,使循环条件趋向于不满足(假)的语句是哪条?三、三、do-while语句语句第六章第六章 循环结构程序设计循环结构程序设计8举例举例while和和do-while循环的比较。循环的比较。 include void main() int i,sum; scanf(“%d”,&i); while(i=10) sum=sum+i; i+; printf(“sum=%dn”,sum);include void main() int i,sum; scanf(“%d”,&i); do sum=sum+i; i+; while(i=10) printf(“sum=%dn”,sum

9、);输入:输入:1 输入:输入:11 sum=55输出:输出:sum=55sum=0输出:输出:sum=11此此程序的程序的功能?功能?什么情况下两什么情况下两者结果相同?者结果相同?P109第六章第六章 循环结构程序设计循环结构程序设计三、三、do-while语句语句9格式格式for (表达式表达式1;表达式;表达式2;表达式;表达式3) 语句语句 P110for (循环变量赋初值;循环条件;循环变量增值循环变量赋初值;循环条件;循环变量增值) 语句语句 执行执行过程过程(1)先求解表达式先求解表达式1;(2)求解表达式求解表达式2,若其值为真,则,若其值为真,则 执行循环体语句,然后执行第

10、(执行循环体语句,然后执行第(3)步;)步;若为假,则结束循环,转到第(若为假,则结束循环,转到第(5)步;)步;(3)求解表达式求解表达式3;(4)转向步骤(转向步骤(2););(5)循环结束,执行循环结束,执行for语句下面的一语句下面的一个语句。个语句。表达式表达式2循环体语句循环体语句假假 真真求解表达式求解表达式1求解表达式求解表达式3四、四、for语句语句第六章第六章 循环结构程序设计循环结构程序设计10sum= 55举例举例求求110的累加和。的累加和。 sum=0for i=1 to10sum=sum+i输出输出suminclude void main() int i,sum;

11、 sum=0; for (i=1;i=10;i+) sum=sum+i; printf(“sum=%5dn”,sum);?1 求求15的累加和的累加和.2 求求110的奇数和的奇数和.3 求求110的偶数和的偶数和.四、四、for语句语句第六章第六章 循环结构程序设计循环结构程序设计11for (表达式表达式1;表达式;表达式2;表达式;表达式3) 语句语句 说明说明三个表达式都可三个表达式都可以省略。以省略。表达式表达式2循环体语句循环体语句假假 真真求解表达式求解表达式3表达式表达式1省略省略循环体语句循环体语句求解表达式求解表达式1求解表达式求解表达式3表达式表达式2省略省略表达式表达式

12、2循环体语句循环体语句假假 真真求解表达式求解表达式1表达式表达式3省略省略四、四、for语句语句第六章第六章 循环结构程序设计循环结构程序设计12说明说明1i=1;for(; i=10;i+) sum=sum+i; 2for (i=1; ;i+) sum=sum+i; ?3for (i=1;i=10 ;) sum=sum+i; i+; for(i=1; i=10;i+) sum=sum+i; 表达式表达式1可以省略,可以省略,但其后的分号不但其后的分号不可以省略。可以省略。没有循环结没有循环结束条件,构束条件,构成了死循环成了死循环for(i=1; i=10;i+) sum=sum+i; 四

13、、四、for语句语句第六章第六章 循环结构程序设计循环结构程序设计13说明说明45for( ; ; ) sum=sum+i; 6表达式表达式1和表达式和表达式3可以是可以是与循环变量无关的表达式。与循环变量无关的表达式。for( ;i=10 ; ) sum=sum+i; i+; 7表达式表达式2一般是关系表达式,也一般是关系表达式,也可以是数值或字符表达式。可以是数值或字符表达式。while(i=10) sum=sum+i; i+ ; while (1) sum=sum+i; 表达式表达式1和表达式和表达式3可可以同时省略,此时等以同时省略,此时等同于同于while语句。语句。for(sum=

14、0,i=1;i=100,i+) sum=sum+i; 例例建议:建议:for语句中只放与语句中只放与循环控制有关的语句。循环控制有关的语句。四、四、for语句语句第六章第六章 循环结构程序设计循环结构程序设计14格式格式while (表达式表达式1) if (表达式表达式2) break; 举例举例 . sum=0; for (i=1;i5) break; sum=sum+i; printf(“sum=%5dn”,sum); .while (表达式表达式1) if (表达式表达式2) conitue; 结束结束整个整个循环循环结束结束本次本次循环循环 . sum=0; for (i=1;i=1

15、0;i+) if (i=5) continue; sum=sum+i; printf(“sum=%5dn”,sum); .五、五、breakcontinue语句语句第六章第六章 循环结构程序设计循环结构程序设计15说明说明1、 三种循环语句在处理循环问题时,一般可三种循环语句在处理循环问题时,一般可以相互替代。以相互替代。2、 对于循环次数固定的问题,用对于循环次数固定的问题,用for语句实现语句实现比较简单。比较简单。3、 对于循环次数不确定的问题,可用对于循环次数不确定的问题,可用while语语句或句或do-while语句实现。语句实现。4、 while语句语句:先判断,后执行。先判断,后

16、执行。 do-while语句:先执行,后判断。语句:先执行,后判断。六、几种循环语句的比较六、几种循环语句的比较第六章第六章 循环结构程序设计循环结构程序设计16概念概念一个循环体内又包含另一个完整的循环结构,称为循环嵌套。一个循环体内又包含另一个完整的循环结构,称为循环嵌套。 1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16举例举例打印乘法口诀表。打印乘法口诀表。 #include void main() int i,j; for (i=1;i=4;i+) for (j=1;j=4;j+) printf(“%4d”,i*j); printf(“n”); i=1, j=1

17、1*1 j=2 1*2 j=3 1*3 j=4 1*4i=2, j=1 2*1 j=2 i=3i=4for i=1 to 4输出输出i*jfor j=1 to 4换行换行一、循环嵌套一、循环嵌套第六章第六章 循环循环结构程序设计结构程序设计17 1 2 4 3 6 9 4 8 12 16#include void main() int i,j; for (i=1;i=4;i+) for (j=1;j=i;j+) printf(“%4d”,i*j); printf(“n”); 一、循环嵌套一、循环嵌套思考思考1第六章第六章 循环循环结构程序设计结构程序设计18#include void main

18、() int i,j; for (i=1;i=4;i+) for (j=1;j=5-i;j+) printf(“%4d”,i*j); printf(“n”); 一、循环嵌套一、循环嵌套思考思考2 1 2 3 4 2 4 6 3 6 4第六章第六章 循环循环结构程序设计结构程序设计19#include void main() int i,j; for (i=1;i=4;i+) for (j=1;j=4-i;j+) printf(“%4d”, ); for (j=5-i;j=4;j+) printf(“%4d”,i*j); printf(“n”); 一、循环嵌套一、循环嵌套思考思考3 4 6 8

19、6 9 12 4 8 12 16第六章第六章 循环循环结构程序设计结构程序设计20#include void main() int i,j; for (i=1;i=4;i+) for (j=1;j=i-1;j+) printf(“%4d”, ); for (j=i;j=4;j+) printf(“%4d”,i*j); printf(“n”); 一、循环嵌套一、循环嵌套思考思考4 1 2 3 4 4 6 8 9 12 16第六章第六章 循环循环结构程序设计结构程序设计21例例1利用公式:利用公式:/4=1-1/3+1/5-1/7+求求 的近似值,直到某一项的绝对值小于的近似值,直到某一项的绝对值

20、小于10-6为止。为止。#include #include void main() int s; float n,t,pi; t=1;pi=0;n=1.0;s=1; while(fabs(t)1e-6) pi=pi+t; n=n+2; s=-s; t=s/n; pi=pi*4; printf(pi=%10.6fn,pi); 思考:使思考:使用那一种用那一种循环控制循环控制语句?语句?二、二、程序举例程序举例第六章第六章 循环循环结构程序设计结构程序设计pi=1-1/3+输出输出4* pis=1(-1)n=1,3,5,7t=s/n22例例2求求Fibonacci数列的前数列的前40个数。个数。#

21、include void main() long int f1,f2; int i; f1=1;f2=1; for(i=1;i=3)P116 1 1 2 3 5 8 13 21 34 55 89 144 二、二、程序举例程序举例第六章第六章 循环循环结构程序设计结构程序设计23例例3判断判断m是否为素是否为素数。数。素数(质数)素数(质数): 只能被只能被1和它本身整除的数。和它本身整除的数。判别方法:判别方法:57:若:若256之间的每一个数都除不开之间的每一个数都除不开56,则,则56为素数,否则为素数,否则56不是素数。不是素数。m, k=m-1,i=2k :若每一个若每一个 i 的值都

22、除不开的值都除不开m,则则m为素数,否则为素数,否则m不是素数。不是素数。flag=1;k=m-1;for (i=2;i=k;i+) if (m%i=0) flag=0;if (flag=1) printf(“yes!”);else printf(“no!”);k=m-1;for (i=2;i=k+1) printf(“yes!”);else printf(“no!”);k=m-1;k=m/2;(m+1)/2;k=sqrt(m);sqrt(m+1)二、二、程序举例程序举例第六章第六章 循环循环结构程序设计结构程序设计24例例3输出输出 101200之间的全部素数。之间的全部素数。for m=1

23、01 to 200判断判断m是否为素数是否为素数若若m是素数,则输是素数,则输出并统计个数出并统计个数n.每输出每输出10个个素数,素数,换行换行#include #include void main() int m,k,i,n=0; for(m=101;m=200;m=m+2) k=sqrt(m); for(i=2;i=k+1) printf(%d ,m); n=n+1; if(n%10=0) printf(n); printf(n);二、二、程序举例程序举例第六章第六章 循环循环结构程序设计结构程序设计25例例4译密码。输入一行字符,输出其相应的密码。(译密码。输入一行字符,输出其相应的密码。(119页)页)译码规律:将字母变成其后的第译码规律:将字母变成其后的第4个字母,非字母字符不变。个字母,非字母字符不变。#include void main() char c; while(c=getchar()!=n) if(ca&cA&cZ&cz) c=c-26; printf(%cn,c); 二、二、程序举例程序举例第六章第六章 循环循环结构程序设计结构程序设计26作业作业P120: 6.1, 6.227

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

最新文档


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

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