ImageVerifierCode 换一换
格式:PPT , 页数:53 ,大小:1.13MB ,
资源ID:11421612      下载积分:14 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/11421612.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(C语言循环结构PPT学习课件.ppt)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C语言循环结构PPT学习课件.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,1,第,*,页,1,第,1,页,循环语句概述,问题:求,1,100,的累计和。,根据已有的知识,可以用“,1+2+100”,来求解,但显然很繁琐。现在换个思路来考虑:,首先设置一个累计器,sum,,其初值为,0,,利用,sum=sum+i,来计算(,i,依次取,1,、,2,、,、,100,),只要解决以下,3,个问题即可:,(,1,)将,i,的初值置为,1,;(,2,)每执行,1,次“,sum=sum+i”,后,,i,增,1,;(,3,)当,n,增到,101,时,停止计算。此时,,sum,的值就是,1,100,

2、的累计和,。,1,第,2,页,根据已有的知识,单独实现每一步都不难。但是,由于需要经常使用这种重复计算结构(称为循环结构),,C,语言提供了循环语句来实现,以简化、并规范循环结构程序设计。,在语言中,可用以下语句实现循环:,(,1,)用,for,语句。,(,2,)用,do-while,语句。,(,3,)用,while,语句。,1,第,3,页,5.1,for,语句,循环,的意思就是让程序,重复地执行某些语句,。,C,语言提供的循环结构有三种:,for,语句、,while,语句和,do_while,语句。,for,语句既可以用于,循环次数已知,的情况,也可用于循环次数预先不知道的情况。,for,语

3、句的一般形式为:,for(),;,;,),1,第,4,页,功能:,先计算,的值,然后判断,的值,若该值为“假”,则退出循环,执行循环体下面的语句;若该值为“真”,则执行,,然后计算,的值,再判断,的值,重复以上的操作。,for,语句的流程图如图:,一般情况下,,是由一对花括括起来的复合语句。,1,第,5,页,for,循环语句注意:,可以省略,但须保留分号,(;),,同时在,for,之前必须给循环变量赋值,如:,i=1;for(;i=100;i+)sum=sum+i;,一般不可省略,否则为无限循环。,如:,for,(,i=1;i+,),sum=sum+i;,相当于条件总为真,程序会一直不停的执行

4、直到“数据溢出”。,1,第,6,页,亦可省略,但在循环语句体中必须有语句来修改循环变量,以使条件表达式的值在某一时刻为,0,,从而能正常结束循环。,如:,for(sum=0,i=1;i=100;),sum=sum+i;,i+;,三个表达式均省略,即,for,(,;,),为无限循环,程序中要避免这种情况的发生。,条件表达式,可以是关系表达式、数值表达式。只要表达式的值,0,。就执行循环语句。,如:,for(i=0;(c=getchar()!=n;i+=c);,1,第,7,页,初始表达式、循环表达式可以是逗号表达式,如:,for(sum=0,i=1;i=100;i+,i+),相当于:,sum=0;

5、for(i=1;i=100;i=i+2),for,循环也可以,嵌套,,执行时是由外向里,逐层进行,先执行外层循环,再进入内层循环;退出时相反,由里向外逐层退出,先退出内层循环,然后退到上一层循环。,【例5,-2,】任意从键盘输入两个整数,a,、,b(ab),i=b;j=a;,for(;i=j;i+),sum=sum+i;,printf(sum=%dn,sum);,1,第,10,页,【例5,-3,】编写一个程序,在屏幕上打印出具有8行7列的如下图案:,这是一个很有规律的图案,可采用二重循环嵌套的方式:第,1,层控制行数,第,2,层控制列数。,算法流程图如下图:,1,第,11,页,/*,exam

6、5_3.c,打印图,案,*/,#,include,main(),int i,j;,for(i=1;i=8;i+),for(j=1;j=7;j+),printf(*);,printf(n);,1,第,12,页,5.2,while,语句,While,语句也是一种用于产生循环动作的语句,,一般形式为:,while,(,),功能:,先计算,的值,若该值为“假”,则跳出循环,执行循环体后面的语句;若该值为“真”,则执行,,然后回过头来再检查,的值,重复以上的操作。,while,语句的流程图,1,第,13,页,:,是用一对花括号括起来的复合语句。,注意:,在,中要有使,的值为假(或,的值为零)的语句,否则

7、会使程序出现无限循环而发生错误。,注意:,由于,while,循环是先判断,的值,后决定是否执行,,因此,有可能一次也不执行,。,1,第,14,页,【例5,-4,】将例51用,while,语句重写,,求简单几何级数的和,。,/*,exam5_4.c,用,while,求简单几何级数的和*/,#,include,main(),int i=1,sum=0;,while(i=0),s=1;,i=1;,while(i=n),s=s*i;,i+;,printf(%d!=%ld,n,s);,else,printf(Invalid input,!,);,试改为,for,循环,?,1,第,17,页,while,和

8、for,的比较,for(,i=1,;,i=10,;,i+,),sum=sum+i,;,i=1,;,循环变量赋初值,while(,i=0,),/*,输入负数,循环结束*,/,total =total+grade;,num+;,scanf(“%lf”,if(num!=0),printf(“Grade average is%.2fn,total/num);,else,printf(Grade average is 0n);,return 0;,Enter grades:,67 88 73 54 82-1,Grade average is 72.80,Enter grades:,-1 67 88 7

9、3 54 82,Grade average is 0,1,第,20,页,5.3,dowhile,语句,do_while,语句是另一种用于产生循环动作的语句。,一般形式为:,do,while(),;,功能:,先执行一次,,然后计算,的值,若该值为“真”,则重复以上的操作,直到该值为“假”,则退出循环语句,执行下一条语句。,do_while,语句的流程图:,1,第,21,页,应该是用一对花括号括起来的复合语句。,注意:,要有可以使,的值为“假”,(即,的值等于零)的语句,否则会使程序出现无限循环而发生错误。,do_while,循环与,while,循环的,区别,,不论情况怎样,,do_while,循

10、环中的,至少会执行一次。,1,第,22,页,【例5,-,7】,将例5,-,6,用,do_while,语句重写,。,1,第,23,页,#include,Int main(void),int num;,double grade,total;,num=0;total=0;,do,printf(“Enter grades:);,scanf(“%lf”,total =total+grade;,num+;,while(,grade=0,);,/*,输入负数,循环结束*,/,printf(“Grade average is%.2fn,(total+1)/(num-1);,return 0;,Enter gr

11、ades:,67 88 73 54 82-1,Grade average is 72.80,Enter grades:,-1 67 88 73 54 82,Grade average is 0,1,第,24,页,【例5,-,8】求,s,in(x)=x-x,3,/3!+x,5,/5!-x,7,/7!+,直到最后一项绝对值小于,le-7,(即,10,-7,)为止。,分析:,多项式从第二项起,每一项都是前一项乘以一个因子,,(-x,2,)/(n*(n-1),(n=3,5,7,9),用,s,代表,sin(x),的值,,t,代表每一项的值,,则:,t=t*(-x,2,)/(n*(n-1);,s=s+t,

12、x,的值是用弧度值表示的,(1,0,=,180,弧度,),,如:,30,0,0.523598775,算法流程图如后图:,1,第,25,页,1,第,26,页,/*,exam5_8.c,求,sin(x),的值*/,#,include,#include,main(),double s,t,x;,int n=1;,scanf(%lf,t=x;,s=x;,do,n=n+2;,t=t*(-x*x)/(n*(n-1);,s=s+t;,while(fabs(t)=1e-7);,printf(sin(%lf)=%lfn,x,s);,程序运行结果:,1.57,sin(1.570000)=1.000000,1,

13、第,27,页,while,是先判别条件,再决定是否循环;,do-while,是先至少循环一次,然后再根据循环的结果决定是否继续循环。,while,和,do-while,的比较,真,假,表达式,循环体语句,do-while,的下一条语句,真,假,while,的下一条语句,表达式,循环体语句,1,第,28,页,循环语句的选择,if,(循环次数已知),使用,for,语句,else /*,循环次数未知*,/,if (,循环条件在进入循环时明确,),使用,while,语句,else,/*,循环条件需要在循环体中明确*,/,使用,do-while,语句,1,第,29,页,5.4,用于循环中的,break,

14、和,continue,语句,一、,break,语句,break,语句的,作用,是从一种控制结构中跳出来。,break,语句可用于循环结构,其作用是,从本层循环结构中跳出,,可以提前结束执行,,执行循环结构外的下一条语句。,break,语句的一般形式为:,break,;,break,语句在循环语句体中的,位置,应根据程序的需要而定,一般是用在循环体内,某一个,if,条件分支的语句中,,用来表示在循环过程中当某一个条件成立时提前结束循环。,1,第,30,页,程序解析判断素数,算法:除了,1,和,m,,不能被其它数整除。,设,i,取值,2,m-1,如果,m,不能被该区间上的任何一个数整除,即对每个,

15、i,,,m%i,都不为,0,,则,m,是素数,只要找到一个,i,,使,m%i,为,0,,则,m,肯定不是素数,m%2%3%4%5%(m-1),不是素数,|=0 =0,是素数,&!=0 !=0,m,不可能被大于,m/2,的数整除,i,取值,2,m-1,、,2,m/2,、,2,for(i=2;i m/2)printf(yesn),else printf(non”);,1,第,31,页,int main(void),int i,m;,printf(“Enter a number:);,scanf(%d,for(i=2;,i m/2),printf(%d is a prime number!n,m);

16、else,printf(No!n);,源程序判断素数,Enter a number:,9,No,Enter a number:,11,11 is a prime number!,循环条件,?,循环的结束条件,?,1,第,32,页,break,语句,while(,exp,),语句,1,if(,expb,),break,;,语句,2,真,假,exp,语句,1,假,expb,语 句,2,循环体,真,for(i=2;,i m/2)printf(Yes);,else printf(No!n);,当循环有多个出口时:,表示循环条件,区分结束条件,for(i=2;i=m/2;i+),if(m%i=0),p

17、rintf(No!n);,break;,printf(Yes);,1,第,33,页,二、,Continue,语句,Continue,语句只适用于循环结构,其一般形式为:,作用:提前结束本次循环,,提前,进行下一次循环,。,【例,5-10,】编写程序,打印100200中不能被3整除的数。,/*,exam5_10.c,求不能被3整除的数*/,#,include,main(),int n;,for(n=100;n=200;n+),if(n%3=0),continue;,printf(%dt,n);,1,第,34,页,算法流程图如图,:,要准确地使用,break,语句和,continue,语句,,,除

18、非有必要,,,否则若可以不用则,尽量不采用,break,语句和,continue,语句。,1,第,35,页,对于例,5-10,的问题,,打印100200中不能被3整除的数。,不采用,continue,语句的算法流程图如图所示:,1,第,36,页,/*,exam5q10.c,例5-10问题不用,continue*,#include,main(),int n;,for(n=100;n=200;n+),if(n%3!=0)/*n,不能被3整除,*,/,printf(%d,n);,1,第,37,页,【例5,-11,】,break,语句和,continue,语句在程序中的区别,/*,exam5_11.c

19、 break,的作用*/,#,include,main(),int x;,for(x=1;x=10;+x),if(x=5),break;,printf(%d,x);,运行结果:1,2,3,4,/*,exam5q11.c continue,的作用*/,#,include,main(),int x;,for(x=1;x=10;+x),if(x=5),continue;,printf(%d,x);,运行结果:1,2,3,4,6,7,8,9,10,1,第,38,页,5.5,循环结构的嵌套,循环结构的嵌套,指的是某一种循环结构的语句中,,包含,有另一个循环结构。,使用嵌套的结构时,要注意嵌套的层次,,不

20、能交叉,。,例,5.12,求,1!+2!+.+100!,1,第,39,页,嵌套循环,for(i=1;i=100;i+),item=i!,sum=sum+item;,for(i=1;i=100;i+),item=1;,for(j=1;j=i;j+)item=item*j;,sum=sum+item;,1,第,40,页,例,4-6,源程序,#include,int main(void),int i,j;,double item,sum;/*item,存放阶乘*,/,sum=0;,for(i=1;i=100;i+),item=1;/*,每次求阶乘都从,1,开始*,/,for(j=1;j=i;j+)/

21、内层循环算出,item=i!*/,item=item*j;,sum=sum+item;,printf(1!+2!+3!+100!=%en,sum);,1,第,41,页,内层循环的初始化,for(i=1;i=100;i+),item=1,;,for(j=1;j=i;j+),item=item*j;,sum=sum+item;,求,1!+2!+.+100!,item=1,;,for(i=1;i=100;i+),for(j=1;j=i;j+),item=item*j;,sum=sum+item;,求,1!+1!*2!+1!*2!*100!,?,1,第,42,页,分析嵌套循环的执行过程,for(i

22、1;i=100;i+),item=1;,for(j=1;j=i;j+),item=item*j;,sum=sum+item;,外层循环变量,i,的每个值,内层循环变量,j,变化一个轮次;,内外层循环变量不能相同,分别用,i,和,j,1,第,43,页,for(i=1;i=100;i+),for(j=1;j=i;j+),printf(%d%dn,i,j);,1,第,44,页,5.6,goto,语句,goto,语句是一种,无条件转向语句,,它可以用在程序的任何地方,其一般形式为:,goto,语句标号;,“,语句标号,”为任何合法的标识符,放在某个语句前面并加上冒号“,:”,作为语句的标号,标号只对

23、goto,语句有意义,带有标号的语句被称作标号语句。,如:,error:,、,end:,、,exp:,等均为合法的语句的标号。,goto,语句的,作用,:转到标号语句所在的地方继续执行。,1,第,45,页,【例5,-,13】用,if,语句和,goto,语句组合构成的循环重,写计算器 的程序。,/*,exam5_13.c if+goto,构成循环*/,#,include,main(),int i,sum=0;,i=1;,loop,:if(i=100),sum=sum+i;,i+;,goto loop,;,printf(sum=%d,sum);,程序运行结果:,sum=5050,goto,语句是

24、一种非结构化的语句,在程序设计中应尽量少用或不用,goto,语句。,1,第,46,页,5.7,程序范例,【例5,-16,】打印出,ASC,码序列中从,33,127,(十进制)的字符对照表。,/*,exam5_16.c,打印部分,ASCII,码字符*/,#,include,main(),int i;,for(i=33;i128;i+),printf(%d-%ct,i,i);,1,第,47,页,【例5,-17,】设公鸡每只5元,母鸡每只3元,小鸡每元3只,现用100元钱买100只鸡,编写一个程序,算出可以各买多少只鸡?,#,include,main(),int i,j,k;,for(i=0;i*5

25、100;i+),for(j=0;j*3=100;j+),for(k=0;k/3=100;k+=3),if(i*5+j*3+k/3)=100&(i+j+k)=100),printf(Cock-%dtHen-%dtChicken-%dn,i,j,k);,1,第,48,页,程序运行结果:,Cock-0 Hen-25 Chicken-75,Cock-4 Hen-18 Chicken-78,Cock-8 Hen-11 Chicken-81,Cock-12 Hen-4 Chicken-84,1,第,49,页,小结,:,三种循环结构:,for,、,while,和,do_while,循环。,当循环次数是肯定

26、的情况下,用,for,循环比较方便。,while,循环,和,for,循环,都要,先判断条件,再执行循环语句体,因此,有可能一次也不执行循环语句体。,do_while,循环,不论怎样,都会先执行,一次循环语句体。,注意避免以下几个方面的问题:,1,循环语句体为复合语句,但没有使用花括号。,2,使程序发生无限循环。,3,混淆,break,语句与,continue,语句的功能。,1,第,50,页,循环程序设计,循环程序的实现要点:,归纳出,哪些操作需要反复执行?,循环体,这些操作在什么情况下重复执行,?,循环条件,选用合适的循环语句,for while do-while,循环具体实现时考虑(循环条件

27、事先给定循环次数,首选,for,通过其他条件控制循环,考虑,while,或,do-while,1,第,51,页,#include,int main(void),int i,mark,max,n;,printf(Enter n:);scanf(%d,printf(Enter%d marks:,n);,scanf(%d,/*,读入第一个成绩*,/,max=mark;/*,假设第一个成绩是最高分*,/,for(i=1;i,n;i+),scanf(%d,if(max=0,),if(max mark),max=mark;,scanf(%d,;,printf(Max=%dn,max);,return

28、 0;,例,5-19,输入一批学生的成绩,求最高分,(while),Enter marks:,67 88 73 54 82-1,Max=88,Enter marks:,-1,1,第,53,页,#include,int main(void),int mark,max;,max=-1,;/*,给,max,赋一个小初值*,/,printf(“Enter marks:);,do,scanf(%d,if(max=0);,printf(Max=%dn,max);,例,5-20,输入一批学生的成绩,求最高分,(do-while),Enter marks:,67 88 73 54 82-1,Max=88,Enter marks:,-1,

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服