c语言第四章循环程序设计,C语言程序设计教程第4章-循环结构程序设计

《C语言程序设计教程第4章-循环结构程序设计》由会员分享,可在线阅读,更多相关《C语言程序设计教程第4章-循环结构程序设计(42页珍藏版)》请在人人文库网上搜索。

1、C语言程序设计,第4章 循环结构程序设计,本章需要掌握的知识点: while语句的语法和语义 do while语句的语法和语义 for语句的语法和语义 break语句和continue语句的使用 求和、迭代和穷举算法的理解和运用,内容安排,4.1 问题的提出 4.2 while 语句 4.3 do while语句 4.4 for语句 4.5 多重循环 4.6 break语句 4.7 continue语句 4.8 程序举例,4.1 问题的提出,为什么要提供循环结构?,4.2 while 语句,在C语言中用什么样的句法来表示循环结构? P条件成立或者不成立用什么表示?,while循环语句的语法是:。

2、 while (表达式) 一个语句单元,例:用while语句 解决“1+2+3+n”的问题,首先确定计算思路 确定n值, 0sum sum+1sum sum+2sum sum+n sum,然后根据算法画出N-S图,#include stdio.h void main() int i=1,sum=0,n; printf(nPlease input a integer:); scanf(%d, ,最后将流程图内容翻译成语言,E0503.c,注意事项,循环次数的控制要正确。 循环体包含一条以上的语句时,一定要使用复合语句。 在循环体内要有使循环趋向于结束的语句,否则,可能引起无限循环。 在循环体中可。

3、以使用break语句强制退出循环。,4.3 do while语句,do while循环语句的语法是: do 循环语句单元 while (表达式); 但一般采用以下形式 do 复合语句 while (表达式);,例:用do while 解决“1+2+3+n”的问题,#include stdio.h void main() int i=1,sum=0,n; printf(nPlease input a integer:); scanf(%d, ,do sum=sum+i; i+; while (i=n);,while和do-while循环的比较,main ( ) int sum=0,i; scan。

4、f(“%d”, ,main ( ) int sum=0,i; scanf(“%d”, ,当确定循环体肯定会执行一次时,使用while和do while是没有差别 如果循环体有可能不执行,必须使用while语句 如果必须保证循环体执行一次,必须使用do while语句,小结(上),循环结构的含义及其N-S图表示方法 while结构的语法形式及其语义 do while语法形式及其语义,上一节关键点回顾,循环结构的两个要素? while语句如何组合这两个关键要素? do while语句如何组合这两个关键要素?,4.4 for语句,问题:为什么要引进for语句?,例:分析求n!程序中控制循环的语句, 。

5、i=1; sum=1; scanf(%ld, ,i+;,i1;,i=n,对于那些初始条件明确,循环控制清晰的循环结构,可以用一个更加清晰的语句结构来描述。,for (表达式1;表达式2;表达式3) 循环语句,for循环语句的语法是:,#include stdio.h void main() int i,sum=0,n; printf(“n请输入一个整数:); scanf(%d, ,E0513.c,例:用for 语句解决“1+2+3+n”的问题,sum=0,输入,n,i=1,i,=n,sum=sum+i;,i= i + 1;,输出,sum,掌握for语句的关键点,三个表达式和循环体语句运行的顺序。

6、? 注意:for语句的书写可以非常灵活!但要避免死循环! 表达式1起什么作用?如果省略会怎样? 表达式2起什么作用?如果省略会怎样? 表达式3起什么作用?如果省略会怎样?,思考1:如果循环体不是一条语句而是一组语句,怎么办? 思考2:可以采用另外一种for语句来达到同样的求和目的吗?,4.5 多重循环,循环体语句可以是三种基本结构中的任意一种 如果在一个循环体内又包含另一个循环结构,称为循环的嵌套。,例 请编写程序在一行内输出整数1到20,并连续输出5行。,使用逐步求精法,i=1,i,=5,在一行内输出整数到,i,增,i=1,i,=5,j=1,j=20,输出,j,j,增,1,输出换行,i,增,。

7、#include stdio.h void main() int i,j; for (i=1; i=5 ; i+) 输出1到20并回车; ,for(j=1;j=20; j+) printf(“%d ”,j); printf(“n”); ,E0515.c,i=1,i,=5,j=1,j=20,输出,j,j,增,1,输出换行,i,增,4.6 4.7 break语句和continue语句,在循环体中遇到break语句提前退出整个循环 在循环体中遇到continue语句提前结束当次循环,EContinue.C,几种循环的比较,三种循环语句都可以互相代替。 退出条件简单且循环变量按照递增或者递减的规律变化。

8、时,使用for语句结构较为清晰。,4.8 程序举例,求和(积) 穷举 迭代,穷举,穷举的基本思想是一一列举所有可能进行测试,从中找出符合条件的解。,实战分析:求两个整数的最小公倍数,公倍数必定能够被两个整数整除。 最小公倍数必定大于或者等于两个整数中最大的那一个。 如果我们从最大的整数开始往上一一寻找,那么第一个发现的就应该是最小公倍数。,gbsAgys.C,算法分析(穷举法) 先找到两个整数中最大的那一个,令为A。 检查A是否能被这两个整数整除,如果是,跳转到第3步,否则将A中的值加1,继续执行第2步。(穷举) A中的值是最小公倍数,实战分析:用分和分硬币组合成元钱,请列出所有可能,假设、分。

9、别代表分和分的硬币个数,如果x,y是合适的组合,那么应有 2x+5y = 100,int x,y; for(x=0;x=50;x+) for (y=0;y=20;y+) if (2*x+5*y = 100 ) printf(c2:%d c5:%d n,x,y); ,E5_22.C,迭代(递推),递推就是采用不断由已知推出新值,直到求得解为止。,实战举例:求兔子的个数,有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问第20个月的兔子总数为多少对?,算法分析,用s1代表月龄为1的兔子对数,s2代表月龄为2的兔子对数,s3代表月龄为大于。

10、等于3的兔子对数。那么s1+s2+s3的和为兔子的总对数,用total代表。 第一个月:s1=1,s2=0,s3=0; total等于多少? 第二个月的s1,s2,s3,total等于多少? 第三个月的s1,s2,s3,total等于多少? 如果已经知道第n月的各个月龄的兔子对数分别为:s1,s2,s3;那么第n+1月的各个月龄的兔子对数分别为多少?,s2 + s3(上个月的) s3(本月) s1(上个月的)s2(本月) s3(本月的)s1(本月),用伪代码描述算法,s1=1,s2=0,s3=0;i=1; /*i为循环变量*/ 输出 “第1个月兔子对数:”,s1s2+s3; 循环以下语句,直到。

11、i大于20 s2 + s3(上个月的) s3 s1(上个月的) s2 s3(本月的) s1 输出 “第i个月兔子对数:”,s1+s2+s3 i+1 i ,E0670.C,小结(下),for循环中三个表达式和循环体运行的顺序 什么叫循环的嵌套 break语句的作用 continue语句的作用 穷举算法 迭代算法,课堂作业一,、编写求n!的程序:要求输入,然后计算输出n的阶乘。 提示:(算法思路) 1fac fac *1 fac fac *2 fac fac *n fac,课外练习,.110 4 1 4-6 4-8 4 15 *4 - 5 *4-12 #4-17 #4-20(有挑战性的问题),上机实验四,上机指导实验四 循环结构 基础部分:课堂作业一 提高部分: 实验作业 第1、第5题,实验步骤: (1)先自学并完成上机指导实验4 循环结构P105-110内容,掌握单步调试、断点调试、条件断点调试等调试技巧来发现并解决程序的逻辑错误; (2)完成并提交课堂作业一的程序,程序源文件的名称为:班级+学号后两位+姓名+实验四.cpp。,* 次数:1357533 已用完,请联系开发者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值