《for循环语句嵌套程序与whileppt课件.ppt》由会员分享,可在线阅读,更多相关《for循环语句嵌套程序与whileppt课件.ppt(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用for循环嵌套程序与while()循环语句的使用内容在教材:内容在教材:P79-86上。上。一、for循环嵌套程序的概念与设计 二、for循环嵌套程序的运行机制三、for循环嵌套程序设计举例四、while()语句循环程序的概念及其设计五、while()语句程序结构的一般形式与执行流程经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求
2、增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用一、for循环嵌套程序的概念与设计【1227】打印】打印以以n为边长的为边长的矩阵图形矩阵图形的程序设计的程序设计#include int main()int n,i,j;scanf(%d,&n);for(i=1;i=n;i+)for(j=1;j=n;j+)printf(#);printf(n);return 0;对应行的循环叫做外循环(i),对应列的循环叫做内循环(j)。经营者提供商品或者服
3、务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用for(i=1;i=100;i+)for(j=1;j=i;j+)printf(%d%dn,i,j);二、for循环嵌套程序的运行机制与举例问题:每给定的一个i值,程序要打印?行(次)。两个循环全部结束后共需要打印?行(次)。答案:共需要打印:答案:共需要打印:1+2+3+100=5050次。次。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿
4、其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用【例例1179】求求1!+2!+1!+2!+.+100!.+100!inti;doubleitem=1;for(i=1;i=n;i+)item=item*i;用用for循环计算循环计算n的阶乘的阶乘用嵌套循环求用嵌套循环求n的阶乘的和的阶乘的和inti,j;doublesum=0,item;for(i=1;i=100;i+)item=1;for(j=1;j=i;j+)item=item*j;sum=s
5、um+item;分析嵌套循环的执行过程分析嵌套循环的执行过程for(i=1;i=100;i+)item=1;for(j=1;j=i;j+)item=item*j;sum=sum+item;n对应于外层循环变量对应于外层循环变量i的每个值的每个值内层循环变量内层循环变量j从从1到到i变化一个轮变化一个轮次;次;n内外层循环变量不能相同内外层循环变量不能相同分别用分别用i和和j求求i!求求item的和的和三、for嵌套循环程序设计示例经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,
6、应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(11791179)#includeintmain()inti,j;doubleitem,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!=%en,sum);return0;问题:如果给定的不是一个固定数问
7、题:如果给定的不是一个固定数100,而是一个可变的量而是一个可变的量n,程序怎么改?,程序怎么改?经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用【例1315】求500以内的素数个数与全部之和for(m=2;m=500;m+)if(m是素数)某个数某个数m是否素数的判定:是否素数的判定:n=sqrt(m);for(i=2;in)printf(yesn)elseprintf(non”);
8、对对500个数个数m的素数判定:的素数判定:for(m=2;m=500;m+)n=sqrt(m);for(i=2;in)count+;sum=sum+m;一定要用嵌套循环的方法才能实现要求。一定要用嵌套循环的方法才能实现要求。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用#include#includeintmain()intcount,i,m,n,sum=0;count=0;/*用
9、来记录素数的个数用来记录素数的个数*/for(m=2;m=500;m+)n=sqrt(m);/*后面后面3行是对给定的行是对给定的m做素数测试做素数测试计算计算*/for(i=2;in)/*对对m是素数情况处理是素数情况处理*/sum=sum+m;count+;printf(%d%dn,count,sum);题号:题号:1315经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用【例】古典
10、算术问题搬砖头 某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬一块。问:用45人正好搬45块砖,有多少种搬法?(派工方法)分析:这是一个组合的问题,由三个因素决定搬法的种数。每类人的数量(待求的量);每类人能搬的砖块数量(已知的约束条件);砖块的总数和人数的总数(已知的约束条件)45块、45人;各类人数的取值与其他类人数的取值无关,但最后加起来正好45人。因此,对于每类人数的取值要反复地试,最后确定正好满足45人搬45块砖的人数组合。显然要用循环程序计算,其中,以每类人的人数作为循环变量,在允许的取值范围内循环,这样就要用到三重循环。(枚举法、试凑法)经营者提供商品或者服务
11、有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用/*45人正好搬人正好搬45块砖,程序版本块砖,程序版本1*全枚举法全枚举法/#includeintmain()intchild,women,men;for(men=0;men=15;men+)/*最多需要几个男人?最多需要几个男人?*/for(women=0;women=22;women+)/*最多需要几个女最多需要几个女人?人?*/for(child=0;
12、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);return0;1182题与此题相似题与此题相似经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用/*45人正好搬人
13、正好搬45块砖,程序版本块砖,程序版本2*/#includeintmain()intchild,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);return0;经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接
14、受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用四、while()语句循环程序的概念及其设计 在循环程序的实际的应用过程中,我们会碰到很多没有办法能以具体数值的方式,明确给出的循环结束条件的问题。这时候就没有办法用for()循环语句来编写程序了,需要引进while()循环语句结构。另一种方式的循环结束条件:当“scanf()函数”的返回值=EOF时,表示后面已经没有数据可读了,因此循环就可以结束了。这个循环结束条件可用“逻辑表达式”表示为:当(scanf(“%d%d”,&a,&b)!=EOF)时,还要
15、继续做循环动作,否则,循环结束。“当”=while();经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用【例1032】用while()循环语句编写程序#includeintmain()inta,b;while(scanf(“%d%d”,&a,&b)!=EOF)/EOF输入方法:输入方法:enter,ctrl+z,enterprintf(%dn,a+b);return0;经营者提供商品或
16、者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用while(条件表达式条件表达式)循环体语句循环体语句;真真假假While的下一条语句的下一条语句表达式表达式循环体语句循环体语句循环条件循环条件循环体循环体一条语句一条语句,可以是常数可以是常数1或或0.While语句的执行流程语句的执行流程一般书写格式:一般书写格式:for(表表达达式式1;表表达达式式2;表表达达式式3)循环体语句循环体语句五、wh
17、ile()语句程序结构的一般形式与执行流程经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用把for语句改写成while语句表达式表达式1;while(表达式表达式2)for的循环体语句的循环体语句;表达式表达式3;for(表达式表达式1;表达式表达式2;表达式表达式3)循环体语句循环体语句for(i=1;i=10;i+)sum=sum+i;i=1;循环变量赋初值循环变量赋初值while
18、(i=10)循环条件循环条件sum=sum+i;i+;循环变量的改变循环变量的改变循环体循环体经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(1)while语句中的表达式可以是任意合法的表达式(比如常量1,0等)。比如,while(1)表示条件永远为真,而while(0)表示条件永远为假。循环体语句与for 语句结构中的循环体一样,是一个“语句段”。在while(1)循环体中,一定有
19、一个“if()break;”语句退出死循环。(2)从while语句与for语句的执行流程可以看出,它们的执行机制实质上都是一样的,都是在循环前先判断条件,只是进入循环的条件的表达方式不同,while语句的条件为“真”才进入循环体。for语句中的“表达式3”要做的事情,已经被并入到while结构中的循环体中去做了。(3)for语句结构一定可以改成while语句结构,但反过来不一定能改。(4)for语句循环结构中的四个要素:循环变量初始化、循环条件、循环体、循环变量值的改变在while语句结构中得到了完全的体现,说明,这两种循环结构的本质是一样的,程序的作用也是一样的。对while语句应用几点说明经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用作业nWhile语句的应用:语句的应用:1032、1034、1040:1197n二重循环(二重循环(for)应用:)应用:1227、126711821179nfor简单应用简单应用1033、1283、1281、1282、1221、1224、1225
限制150内