第5章循环结构的语句及流程.ppt
《第5章循环结构的语句及流程.ppt》由会员分享,可在线阅读,更多相关《第5章循环结构的语句及流程.ppt(36页珍藏版)》请在三一文库上搜索。
1、,布置作业,书面练习:P113P114习题 准备上机题目:实验报告上:实验五,实验六 要求画出程序流图。 上机实验: 实现实验五、实验六 上交作业 下机时班长收齐程序流图上交 。,程序设计方法,第5章 循环结构的程序设计,问题1:假如全班41人,欲从键盘上输入每人的数学成绩,然后计算出平均成绩; 问题2: 编程计算n! . 这些都是重复计算的问题,需要由循环结构来解决。C 提供了以下4种重复计算的结构:,goto 标号 while (表达式) 语句 do 语句 while (表达式) for (表达式1;表达式2;表达式3) 语句,goto语句及用goto构成循环,格式1: goto labe
2、l ; 其中:label是语句标号,它命名的规则同变量名; 功能:使程序无条件地转向标号为label的语句去执行; 可以用 if goto 语句构成循环. 如:解上述问题 1:,#include #define N 41 main( ) /*c501.c*/ int i=1; float math , avg=0. ; loop: printf(“输入数学成绩 (%d): “, i); scanf(“%f”, ,程序实现,说明:1) 标号不必进行类型说明; 2) 程序中的任何一个语句均可带上标号,但标号必须以冒号结束; 3) 不提倡使用goto语句。,循环体,循环结构的语句及流程控制,格式2:
3、 while (表达式) 语句 功能: 当表达式的值非0时,执行语句,该语句一般是复合语句,被称之为循环体.,例: 解问题2 ,求 n! 的值. 需要定义的变量: mul - 存放累乘积 ; i - 计数; n -,程序: c502.c,#include main() int i=1, n; long mul=1; printf(“n Input n:”); scanf(“%d”, ,mul*=i+;,说明:,循环体可以是单个语句或复合语句 while语句前应有为测试表达式中的循环控制变量赋初值的语句,以确保循环的正常开始; 循环体内应有改变循环控制变量的语句,以确保循环进行有限次后正常结束;
4、 如: int i=1; while (i=100) sum=sum+1; (死循环) while 循环的特点是先判断后执行,故循环有可能一次都不被执行; 如: int i=3; while (i3) printf(“i=%dn”, i);,例2:求整数a和b的最小公倍数,算法流图如下:,程序如下:,C503.c c503_1.c,#include main( ) int a,b, i,m,n; scanf(“%d%d”, ,#include main( ) int a,b, i; scanf(“%d%d”, ,循环结构的语句及流程控制,格式3: do 语句 while (表达式); 功能:
5、先执行语句(单个语句或复合语句,被称之为循环体),当表达式的值非0时, 重复执行该语句,直到表达式的值为0。 例: sum=1+2+3+N.(c604.c),#include #define N 100 main() int i=1,sum=0; do sum=sum+i; i+; while (i=N); printf(“n sum=%d“,sum); ,#include main() int i=1,sum=0,N; scanf(“%d”, ,例子,需要定义的变量: e - 存放累加值; i - 计数; n - 存放计算阶 乘值.,计算: e1+1/1!+1/2!+.+1/100!,程序
6、(c505.c),#include void main() int i=1; double e,n; e=n=1.0; do n=n*i; e=e+1./n; while (+i=100); printf(“n e=%f“,e); ,#include main() int i=1; double t, e=1.0; int n=1; do n=n*i+; t=1./n; e=e+t; while (t =1e-7); printf(“n e=%f“,e); ,循环结构,for 循环比较灵活,既可用于确定次数的循环,也可用于不确定次数的循环其执行流程描述如下:,格式4: for (表达式1;表达
7、式2;表达式3) 语句 常用形式: for (循环变量初值; 循环条件; 循环变量增值) 语句,程序示例,例: 计算 sum=1+2+3+100 (c506.c),void main() int i, sum=0; for(i=1;i=100;i+) sum+=i; printf(“n sum=%d“,sum); ,例: 计算: e1+1/1!+1/2!+.+1/100! (c507.c),void main() int i ; double e=1.0, n=1.0; for (i=1;i=100;i+) n=n*i ; e=e+1.0/n; printf(“n e=%f“,e); ,程序设
8、计的三种方法,枚举法 就是逐一列举出可能解的各个元素,并加以判断,直到求得所需要的解。常用在排列、组合、数据分类、信息检索、多解方程的求解上; 归纳法 是从大量的特殊性中总结出规律性或一般性的结论。在程序设计上主要表现为递归和迭代、数列和级数求和。 抽象法 自顶向下,逐步求精。,枚举问题,求1000 2000之间的素数 打印出水仙花数,所谓水仙花数是指一个3位数,其各位数的立方之和等于该数本身。如:153=1*1*1+5*5*5+3*3*3. 百钱买百鸡问题.大公鸡5钱一只,母鸡3钱一只,雏鸡一钱买3只,有几种买法,求出所有解。 两个乒乓球队进行比赛,各出三人甲队为A、B、C.乙队为X、Y、Z
9、。已经抽签决定了比赛名单。有人向队员打听比赛对阵情况,A说他不和X比,C说他不和X、Z比。 编程序找出三对赛手的名单.,例1求1000 2000之间的素数,需要的变量说明: i : 10002000; j: 2 i k : 0, 1 0- 是素数 1- 不是素数,参考程序 c510.c,#include main() int i,j,k,m; printf(“10002000之间的素数:n”); for (i=1000; i2000; i+) k=0; /*用于标识是否素数*/ m= sqrt(i); for (j=2; j= m; j+) if (i%j=0) k=1; break; if
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构 语句 流程
链接地址:https://www.31doc.com/p-2256986.html