您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > C语言程序设计-PPT-单元五循环结构程序设计
C语言程序设计高等教育出版社新形态一体化教材单元五导学【问题1】某大赛中重复要做的事情是什么?【问题2】满足什么条件大赛可继续执行?目录2三种循环语句3循环结构控制语句4循环应用1循环的本质循环的本质1循环的本质——引例987771号:总分31分8762号:总分28分▲评委亮分▲计算总分在某一条件成立的情况下反复做重复性的事情,这就是循环。某大赛重复的事情有:1循环的本质如何用程序设计语言来描述大赛问题呢?inti=1;设i为评委编号,整型,初始值为1设score存评委分数,sum存总分并设初值为0.0,均为浮点型floatscore,sum=0.0;在i=4的条件下反复执行如下操作:scanf(%f,&score);播报(输入)当前评委亮出的分数scoresum+=score;累加到总分sumi++;评委编号递增1⑴变量定义⑵算法描述1循环的本质⑶减少源代码的存储空间,提高程序质量。⑴可重复执行某些相同代码的程序段;⑵将程序员从大量重复编写相同代码的工作中解放出来,提高程序编写效率;循环的本质【循环结构的任务】1循环的本质⑶每次循环要做什么,即“反复执行的语句”,称为“循环体”。⑴循环从什么时候开始,即“循环变量初值”。⑵满足什么条件要循环,即“循环控制条件表达式”。i=1;i=4scanf(%f,&score);sum+=score;i++;循环变量初值循环控制条件表达式循环体循环结构三要素【概括大赛问题】目录3循环结构控制语句4循环应用1循环的本质2三种循环语句三种循环语句2三种循环语句——while语句while(表达式){循环体;}【一般格式】循环控制条件表达式由一条或多条语句组成,当“循环体”仅有一条语句时,可省略“{}”。表达式真?循环体真(非0)假(0)【流程图】2三种循环语句——while语句——示例利用while语句计算大赛选手总分。(有10位评委)#includestdio.hvoidmain(){doublescore,sum=0;inti=1;while(i=10){printf(请第%d位评委亮分:,i);scanf(%lf,&score);sum=sum+score;i++;}printf(“该选手的总分为:%.2lf.\n,sum);}循环控制条件循环体2三种循环语句——while语句——随堂练习利用while语句计算1~n中的奇数之和及偶数之和。【提示】⑴n的值在程序执行时通过键盘输入⑵各变量初值如何设计?⑷循环变量增量如何设计?⑶循环条件如何设计?2三种循环语句——do…while语句do{循环体;}while(表达式);【一般格式】表达式后必须有;【流程图】表达式真?循环体真(非0)假(0)2三种循环语句——do…while语句——示例利用while语句计算大赛选手总分。(有10位评委)#includestdio.hvoidmain(){doublescore,sum=0;inti=1;do{printf(请第%d位评委亮分:,i);scanf(%lf,&score);sum=sum+score;i++;}while(i=10);printf(“该选手的总分为:%.2lf.\n,sum);}2三种循环语句——do…while语句——随堂练习利用do…while语句计算1+1/2+1/3+…+1/n。【提示】⑴n的值在程序执行时通过键盘输入⑵各变量的数据类型如何设计?⑶“1”与“1.0”有什么区别?2三种循环语句——for语句【一般格式】【流程图】for(表达式1;表达式2;表达式3){循环体;}表达式之间用;分隔表达式2?循环体真(非0)表达式1表达式3假(0)2三种循环语句——for语句——示例利用for语句计算大赛选手总分。(有10位评委)#includestdio.hvoidmain(){doublescore,sum=0;inti;for(i=1;i=10;i++){printf(请第%d位评委亮分:,i);scanf(%lf,&score);sum=sum+score;}printf(“该选手的总分为:%.2lf.\n,sum);}2三种循环语句——for语句——随堂练习利用for语句计算1+1/2+1/3+…+1/n。【提示】⑴n的值在程序执行时通过键盘输入⑵各变量的数据类型如何设计?⑶若“intn=2;”,“1/n”的值是多少?“1.0/n”又是多少?目录4循环应用1循环的本质2三种循环语句3循环结构控制语句循环结构控制语句3循环结构控的制语句——break语句——引例while(表达式1){……if(表达式2)break;……}在程序执行的过程中,如果“表达式2”为真,则执行break语句,此时也会终止循环。正常情况下,该循环结构的执行由循环控制条件“表达式1”控制,当“表达式1”为假时,循环结束。【一般格式】break;结束循环3循环结构控的制语句——break语句——示例设计一个程序实现:输入若干字符,对输入的英文字母原样输出,其他字符不输出,直到输入回车键结束。#includestdio.hvoidmain(){charch;while(1){ch=getchar();if(ch=='\n')break;elseif(ch='a'&&ch='z'||ch='A'&&ch='Z')putchar(ch);}}结束循环3循环结构控的制语句——continue语句——引例while(表达式1){……if(表达式2)continue;……}在执行循环体的过程中。如果“表达式2”为真,执行continue语句,即不再执行continue后面的循环体语句,转到“表达式1”进行下一次循环控制条件的判定。在循环控制条件“表达式1”成立的情况下,则执行循环体。【一般格式】continue;结束本次循环,进行下一次是否执行循环的判定。3循环结构控的制语句——continue语句——示例设计一个程序实现:输入若干字符,对输入的英文字母原样输出,其他字符不输出,直到输入回车键结束。#includestdio.hvoidmain(){charch;while((ch=getchar())!='\n'){if(ch='a'&&ch='z'||ch='A'&&ch='Z')continue;putchar(ch);}}结束本次循环,进行下一次是否执行循环的判定。目录1循环的本质2三种循环语句4循环应用循环应用3循环结构控制语句4循环应用【应用1】自幂数是指一个n位整数,它的每个位上的数字的n次幂之和等于它本身。当n为4时,自幂数称为玫瑰花数,试编程输出1000~9999范围内所有的玫瑰花数。(形如14+64+34+44=1634)【分析】设这个四位整数为n,它的各位数字从低到高分别为a、b、c和d。a=n%10b=n/10%10c=n/100%10d=n/1000个位十位百位千位4循环应用#includestdio.hvoidmain(){inti,n,a,b,c,d;for(i=1000;i=9999;i++){n=i;a=n%10;b=n/10%10;c=n/100%10;d=n/1000;if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==n)printf(%6d,n);}}163482089474输出结果4循环应用【应用2】百元百鸡问题。我国古代数学家张丘键在《算经》中出了一道题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?【分析】设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,问题化为三元一次方程组。5𝑥+3𝑦+𝑧3=100𝑥+𝑦+𝑧+100(百钱)(百鸡)x、y、z的取值范围:⑴x的取值范围为1~20;⑵y的取值范围为1~33;⑶z的取值范围为3~99,步长为3。x、y、z为正整数,且z是3的倍数;由于鸡和钱的总数都是100。用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。#includestdio.hvoidmain(){intgongji,muji,xiaoji;for(gongji=1;gongji=20;gongji++)//公鸡可能的数量范围{for(muji=1;muji=33;muji++)//母鸡可能的数量范围{for(xiaoji=3;xiaoji=100;xiaoji=xiaoji+3)//小鸡可能的数量范围{if((xiaoji/3+muji*3+gongji*5==100)&&(xiaoji+muji+gongji==100))printf(%4d\t%4d\t%4d\n,gongji,muji,xiaoji);}}}}4循环应用输出结果:公鸡母鸡小鸡418788118112484目录2三种循环语句3循环结构控制语句4循环应用1循环的本质总结循环可减少重复代码,提高程序质量循环的本质三种循环语句循环结构控制语句while语句是先判断、后执行的语句do…while是先执行、后判断的语句for循环适用于循环次数确定的情况continue;结束本次循环,进行下一次循环break;结束循环
本文标题:C语言程序设计-PPT-单元五循环结构程序设计
链接地址:https://www.777doc.com/doc-6015885 .html