C语言程序设计 教学课件 作者 张淑华 朱丽莉C语言程序设计5.ppt

C语言程序设计 教学课件 作者 张淑华 朱丽莉C语言程序设计5.ppt

ID:50298240

大小:618.00 KB

页数:49页

时间:2020-03-07

C语言程序设计 教学课件 作者 张淑华 朱丽莉C语言程序设计5.ppt_第1页
C语言程序设计 教学课件 作者 张淑华 朱丽莉C语言程序设计5.ppt_第2页
C语言程序设计 教学课件 作者 张淑华 朱丽莉C语言程序设计5.ppt_第3页
C语言程序设计 教学课件 作者 张淑华 朱丽莉C语言程序设计5.ppt_第4页
C语言程序设计 教学课件 作者 张淑华 朱丽莉C语言程序设计5.ppt_第5页
资源描述:

《C语言程序设计 教学课件 作者 张淑华 朱丽莉C语言程序设计5.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五章循环结构的程序设计15.1穷举与迭代算法5.2goto语句5.3while语句5.4do-while语句5.5for语句5.6循环的嵌套5.7循环结构中的跳转语句5.8循环结构程序设计举例第5章循环结构程序设计2第5章循环结构的程序设计什么是循环?为什么要使用循环?循环是有规律的重复操作。将复杂问题分解为简单的操作过程,程序只对简单过程描述,这些过程的多次重复就可完成对问题的求解。问题1:问题2:求学生平均成绩。求1+2+3+…+100的和。if--goto循环while循环for循环dowhile循环先判断后循环(当型循环

2、)先循环后判断(直到型循环)3循环变量的初始值循环进入条件循环体循环变量的增值循环的基本要素循环变量的初值满足条件则执行循环体重复执行的语句循环变量的改变,进一步测试条件二、循环结构循环体N条件Y入口出口条件NY循环体区别?先循环后判断先判断后循环第5章循环结构的程序设计4第5章循环结构的程序设计在程序设计时,我们总是把不易理解的、复杂的求解过程设计成单一动作的多次重复。优点:1.降低程序的复杂程度,编制程序简单2.能充分发挥计算机运算速度快特点循环设计常用算法:穷举、迭代5§5.1穷举与迭代算法迭代与穷举算法是两类具有代表性的基

3、本应用迭代是一个不断用新值取代变量的旧值,或者由旧值递推得出变量的新值的过程穷举是另一种重复型的算法,它的基本思想是对问题的所有可能状态逐一测试,直到找到解或将全部可能状态都测试完为止。水仙花数的问题(穷举)求解阶乘的问题(迭代)6穷举法实例求所有水仙花数的问题。水仙花数是指:一个三位数,其各位数字立方和等于该数本身。例如153=13+33+53,故153是水仙花数。用穷举法解此题的思路:从最小的三位数开始,到最大的三位为止,一个个拿出来进行判断,看是否是水仙花数。如何判断一个数i是否是水仙花数的关键:如何将一个三位数的各位取出。

4、方法一、用数学方法计算出各位的值:个位a:a=i%10十位b:b=(i/10)%10百位c:c=i/100方法二、各位依次从最小值到最大值一个个试:个位a:0到9十位b:0到9百位c:1到97迭代法实例求解阶乘的问题。若输入的n值为5,即5的阶乘5!=5*4*3*2*1,则迭代次数(循环条件)为1~5次。分别执行迭代公式f=f*i;,让f的值不断改变,f的初值为1。当i=1时,f=1*1=1;i=2时,f=1*2=2;i=3时,f=2*3=6;i=4时,f=6*4=24;i=5时,f=24*5=120;当i=6时,退出循环。可见,

5、迭代就是不断用新值取代旧值,或由旧值递推出新值的过程。8§5.2goto语句二、标号语句格式:标号标识符:语句功能:指示语句在程序中的位置,作为转移语句的转移目标一、goto语句(无条件转向语句)格式:goto标号标识符功能:执行该语句时,将程序流程无条件地转向指定标号所在的语句继续执行。标号由数字,字母,下划线组成gotoloop;loop:if(x<=y)scanf(“%d,%d”,&x,&y);loop:if(x<=y){t=x;x=y;y=t;}gotoloop;……9#include“stdio.h”voidmain()

6、{inti,sum=0;i=1;loop:if(i<=100){sum=sum+i;i++;gotoloop;}printf(“%d”,sum);}说明:goto可以从较深的多重循环中转移到外层,或从函数内,转移到函数外,不能从外到内goto§5.2goto语句冒号10while循环1.格式:while(表达式)循环体2.功能:先判断表达式的值,若为非零,重复执行循环体语句,再判断…直到表达式的值为零,退出循环体。条件即:测试---执行--测试--执行--§5.3while语句while(条件){语句组}#include“stdi

7、o.h”voidmain(){ints,n;s=0;n=1;while(n<=100){s=s+n;n++;}printf(“%d”,s);}100113.说明:(1)当循环体中语句多于一条时,用{},否则,循环只对一个;起作用.(2)循环体内部必须有实现对循环变量增值的语句,否则,易出现“死循环”.(3)条件表达式要有括号,后面不加分号.(4)注意条件的边界值.【例5.4】求sum=1+2+3+…+100的累加和。#include“stdio.h”voidmain(){inti=1,sum=0;while(i<=100){s

8、um=sum+i;i++;}printf(“sum=%d",sum);}§5.3while语句12§5.3while语句【例5.5】求两个正整数的最大公因子。辗转相除法已知两个数M和N,假定M>N,则求M%N,若余数r为0,则N即为是所求,若余数r

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

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

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