收藏 分销(赏)

for循环语句嵌套程序与while语句循环程序的设计上课讲义.ppt

上传人:w****g 文档编号:7798466 上传时间:2025-01-17 格式:PPT 页数:16 大小:380.50KB 下载积分:8 金币
下载 相关 举报
for循环语句嵌套程序与while语句循环程序的设计上课讲义.ppt_第1页
第1页 / 共16页
for循环语句嵌套程序与while语句循环程序的设计上课讲义.ppt_第2页
第2页 / 共16页


点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,for循环语句嵌套程序与while语句循环程序的设计,for,(i=,1,;i=,100,;i+),for,(j=,1,;j=i;j+),printf(%d%d,n,i,j);,二、,for,循环嵌套程序的运行机制与举例,问题:,每给定的一个,i,值,程序要打印,?,行(次)。两个循环全部结束后共需要打印,?,行(次)。,答案:共需要打印:,1+2+3+100=5050,次。,【,例,1179】,求1!+2!+,.+100!,int i;,double item=1;,for(i=1;i=n;i+),item=item,*,i;,用,for,循环计算,n,的阶乘,用嵌套循环求,n,的阶乘的和,int i,j;,double sum=0,item;,for(i=1;i=100;i+),item=1;,for(j=1;j=i;j+)item=item*j;,sum=sum+item;,分析嵌套循环的执行过程,for(i=1;i=100;i+),item=1;,for(j=1;j=i;j+),item=item*j;,sum=sum+item;,对应于外层循环变量,i,的每个值,内层循环变量,j,从,1,到,i,变化一个轮次;,内外层循环变量不能相同,分别用,i,和,j,求,i,!,求,item,的和,三、,for,嵌套循环程序设计示例,(,1179,),#,include,int,main(),int,i,j;,double,item,sum;,/*,item,存放阶乘*/,sum=0;,for,(i=,1,;i=,100,;i+),item=,1,;,/*,内层循环的初始化,每次求阶乘都从1开始*/,for,(j=,1,;j=i;j+),/*,内层循环算出,item=i!*/,item=item*j;,sum=sum+item;,printf,(1!+2!+3!+100!=%,e,n,sum);,return,0,;,问题:如果给定的不是一个固定数,100,,而是一个可变的量,n,,程序怎么改?,【,例,1315,】,求500以内的素数个数与全部之和,for(m=2;m=500;m+),if(,m,是素数,),某个数,m,是否素数的判定:,n=,sqrt,(m);,for,(i=2;i n),printf,(yesn),else,printf,(non”);,对,500,个数,m,的素数判定:,for,(m=2;m=500;m+),n=,sqrt,(m);,for,(i=2;i n,),count+,;,sum=sum+m;,一定要用嵌套循环的方法才能实现要求。,#,include,#include,int,main(),int,count,i,m,n,sum=0;,count=,0,;/*,用来记录素数的个数*,/,for,(m=,2,;m=,500,;m+),n=,sqrt,(m);,/*,后面,3,行是对给定的,m,做素数测试 计算*/,for,(i=,2,;i n),/*,对,m,是素数情况处理*/,sum=sum+m;,count+;,printf,(%d%dn,count,sum);,题号:,1315,【,例,】,古典算术问题搬砖头,某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬一块。,问:,用45人正好搬45块砖,有多少种搬法?(派工方法),分析:,这是一个组合的问题,由三个因素决定搬法的种数。,每类人的数量(,待求的量,);,每类人能搬的砖块数量(已知的约束条件);,砖块的总数和人数的总数(已知的约束条件),45,块、,45,人;,各类人数的取值与其他类人数的取值无关,但最后加起来正好,45,人。因此,对于每类人数的取值要反复地试,最后确定正好满足,45,人搬,45,块砖的人数组合。显然要用循环程序计算,其中,以每类人的人数作为循环变量,在允许的取值范围内循环,这样就要用到三重循环。(,枚举法、试凑法,),/*45人正好搬45块砖,程序版本1*,全枚举法,/,#include,int main(),int child,women,men;,for(men=0;men=15;men+),/*最多需要几个男人?*,/,for(women=0;women=22;women+),/*最多需要几个女人?*,/,for(child=0;child=45;child+),/*最多需要几个儿童?*,/,if(,men+women+child=45,&,men*3+women*2+child*0.5,=45),printf(men=%d,women=%d,child=%dn,men,women,child);,return 0;,1182,题与此题相似,/*45人正好搬45块砖,程序版本2*/,#include,int main(),int child,women,men;,for(men=0;men=15;men+),for(women=0;women=22;women+),child=45-women-men;,/*由总人数的限制求小孩数,*/,if(,men*3+women*2+child*0.5=45,),printf(men=%d,women=%d,child=%dn,men,women,child);,return 0;,四、,while,()语句循环程序的概念及其设计,在循环程序的实际的应用过程中,我们会碰到很多没有办法能以具体数值的方式,明确给出的循环结束条件的问题。这时候就没有办法用,for(),循环语句来编写程序了,需要引进,while(),循环语句结构。,另一种方式的循环结束条件:当“,scanf,(),函数”的返回值,=,EOF,时,表示后面已经没有数据可读了,因此循环就可以结束了。,这个循环结束条件可用“,逻辑表达式,”表示为:,当,(,scanf(“%d%d”,&a,&b)!=EOF,),时,还要继续做循环动作,否则,循环结束。“,当,”,=,while,();,【,例,1032】,用,while,(),循环语句编写程序,#include,int,main(),int,a,b;,while(,scanf,(“%d%d”,&a,&b)!=,EOF,)/EOF,输入方法:,enter,ctrl+z,enter,printf,(%dn,a+b);,return,0,;,while,(,条件表达式,),循环体语句,;,真,假,While,的下一条语句,表达式,循环体语句,循环条件,循环体,一条语句,可以是常数,1,或,0.,While,语句的执行流程,一般书写格式:,for,(,表达式,1,;,表达式,2,;,表达式,3,),循环体语句,五、,while,()语句程序结构的一般形式与执行流程,把,for,语句改写成,while,语句,表达式1,;,while(,表达式2,),for,的循环体语句,;,表达式3,;,for,(,表达式1,;,表达式2,;,表达式3,),循环体语句,for(,i=1,;,i=10,;,i+,),sum=sum+i;,i=1,;,循环变量赋初值,while(,i=10,),循环条件,sum=sum+i,;,i+,;,循环变量的改变,循环体,(,1,),while,语句中的表达式可以是任意合法的表达式(比如常量,1,0,等)。比如,,while(1),表示条件永远为真,而,while(0),表示条件永远为假。循环体语句与,for,语句结构中的循环体一样,是一个“语句段”。,在,while(1),循环体中,,一定有一个,“,if,(),break;,”,语句退出死循环。,(,2,)从,while,语句与,for,语句的执行流程可以看出,它们的执行机制实质上都是一样的,都是在循环前先判断条件,只是进入循环的条件的表达方式不同,,while,语句的条件为“真”才进入循环体,。,for,语句中的,“表达式,3,”要做的事情,已经被并入到,while,结构中的循环体中去做了。,(,3,),for,语句结构一定可以改成,while,语句结构,但反过来不一定能改。,(,4,),for,语句循环结构中的四个要素:循环变量初始化、循环条件、循环体、循环变量值的改变在,while,语句结构中得到了完全的体现,说明,这两种循环结构的本质是一样的,程序的作用也是一样的。,对,while,语句,应用几点说明,作业,While,语句的应用:,1032,、,1034,、,1040,:,1197,二重循环(,for,)应用:,1227,、,1267 1182 1179,for,简单应用,1033,、,1283,、,1281,、,1282,、,1221,、,1224,、,1225,此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服