5-循环结构程序设计2.ppt

上传人:s****8 文档编号:69171549 上传时间:2022-12-31 格式:PPT 页数:45 大小:892KB
返回 下载 相关 举报
5-循环结构程序设计2.ppt_第1页
第1页 / 共45页
5-循环结构程序设计2.ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《5-循环结构程序设计2.ppt》由会员分享,可在线阅读,更多相关《5-循环结构程序设计2.ppt(45页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C 语 言 程 序 设 计华商学院华商学院华商学院华商学院 信息工程系信息工程系信息工程系信息工程系 nTelTel:13631350256/65025613631350256/650256华商学院华商学院 信息工程系信息工程系2022年年12月月31日日第5章 循环结构程序设计1while、dowhile语句实现循环语句实现循环2for语句实现循环语句实现循环3提前提前结束循环结束循环4循环结构循环结构2华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.1 循环结构循环结构循环:重复执行某段算法循环:重复执行某段算法n无休止循环无休止循环n有终止循环有终止循环n有穷性:有

2、限的操作步骤有穷性:有限的操作步骤(合理范围内合理范围内)n确定性:没有歧义确定性:没有歧义n有效性:有效执行,得到确定的结果有效性:有效执行,得到确定的结果n若若b=0,则,则a/b不能有效执行不能有效执行有效循环:循环体有效循环:循环体+循环条件循环条件3华商学院华商学院 信息工程系信息工程系2022年年12月月31日日第5章 循环结构程序设计1while、dowhile语句实现循环语句实现循环2for语句实现循环语句实现循环3提前提前结束循环结束循环4循环结构循环结构4华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.2 while、dowhile语句语句while格

3、式:格式:nwhile(表达式表达式)语句语句 /表达式值表达式值非非0时执行语句时执行语句n如果循环体包含一个以上的语句,需用花括号括如果循环体包含一个以上的语句,需用花括号括起所有语句起所有语句n在循环体中应有使循环体趋向结束的语句在循环体中应有使循环体趋向结束的语句 当当当当p p成立成立成立成立 语句语句语句语句p p成立成立成立成立语句语句语句语句不成立不成立不成立不成立5华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.2 while、dowhile语句语句求求1+2+100int i=1,sum=0;while(i=100)sum+=i;i+;printf(s

4、um is%dn,sum);例例例例 5.15.1i=100i=100i=1i=1sum=0sum=0sum+=isum+=ii+=1i+=16华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.2 while、dowhile语句语句dowhile格式:格式:ndo语句语句while(表达式表达式);/表达式值表达式值非非0时执行语句时执行语句p p成立成立成立成立语句语句语句语句不成立不成立不成立不成立当当当当p p成立成立成立成立语句语句语句语句7华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.2 while、dowhile语句语句求求1+2+100

5、int i=1,sum=0;dosum+=i;i+;while(i=100);printf(sum is%dn,sum);例例例例 5.25.2i=100i=100i=1i=1sum=0sum=0sum+=isum+=ii+=1i+=18华商学院华商学院 信息工程系信息工程系2022年年12月月31日日sum 10000sum 10000sum=0sum=0输入输入输入输入amountamountsum+=amountsum+=amount5.2 while、dowhile语句语句double amount,sum=0;doscanf(%lf,&amount);sum+=amount;whil

6、e(sum 10000);printf(sum is%.2fn,sum);例例例例 5.35.39华商学院华商学院 信息工程系信息工程系2022年年12月月31日日第5章 循环结构程序设计1while、dowhile语句实现循环语句实现循环2for语句实现循环语句实现循环3提前提前结束循环结束循环4循环结构循环结构10华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.3 for语句实现循环语句实现循环for格式:格式:nfor(表达式表达式1 1;表达式表达式2 2;表达式表达式3 3)语句语句1.求解表达式求解表达式1 12.求解表达式求解表达式2 2n若其值为若其值为真

7、真,则执行内嵌语句,然后,则执行内嵌语句,然后执行执行”步步3”n若其值为若其值为假假,则结束循环,转,则结束循环,转”步步5”3.求解表达式求解表达式3 34.转转”步步2”5.循环结束,执行循环结束,执行for语句后面的语句语句后面的语句NSNS流程图?流程图?流程图?流程图?11华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.3 for语句实现循环语句实现循环nfor(表达式表达式1 1;表达式表达式2 2;表达式表达式3 3)语句语句nfor(循环变量赋初值循环变量赋初值;循环条件循环条件;循环变量增值循环变量增值)语句语句nfor(sum=0,i=1;i=100

8、;i+)sum+=i;表达式表达式表达式表达式2 2 2 2真真真真语句语句语句语句求解表达式求解表达式求解表达式求解表达式3 3 3 3求解表达式求解表达式求解表达式求解表达式1 1 1 1后续语句后续语句后续语句后续语句12华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.3 for语句实现循环语句实现循环国王的小麦国王的小麦/20+21+22+263/1 +2 +double p=1,total=1,v;for(int i=1;i=63;i+)p*=2;/p=p*2total+=p;/total=total+pv=total/1.42e8;printf(total=%

9、en,total);printf(volume=%en,v);例例例例 5.45.413华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.3 for语句实现循环语句实现循环double p=1.30756e9,r=0.01;int year;for(year=2006;p=1.5e9;year+)p*=1+r;/p=p*(1+r)printf(year=%dn,year-1);printf(people=%en,p);例例例例 5.55.514华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.3 for语句实现循环语句实现循环通过键盘输入字符,直到输入一

10、个通过键盘输入字符,直到输入一个“换行换行”为止,然为止,然后依次输出这些字符后依次输出这些字符for(char c;(c=getchar()!=n;)printf(%c,c);/for(char c;(c=getchar()!=n;printf(%c,c);/for(char c;(c=getchar()!=n;putchar(c);运行结果:运行结果:HuaShang HuaShang 从键盘输入数据,是按从键盘输入数据,是按Enter键后将数据送入内存缓冲区,然键后将数据送入内存缓冲区,然后每次从缓冲区读一个字符,再输出该字符,而不是从终端敲后每次从缓冲区读一个字符,再输出该字符,而不是

11、从终端敲入一个字符立即就输出一个字符入一个字符立即就输出一个字符HHuuaaSShhaanngg 15华商学院华商学院 信息工程系信息工程系2022年年12月月31日日第5章 循环结构程序设计1while、dowhile语句实现循环语句实现循环2for语句实现循环语句实现循环3提前提前结束循环结束循环4循环结构循环结构16华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.4 提前结束循环提前结束循环用用break语句提前结束循环语句提前结束循环n格式:格式:break;n结束结束整个整个循环循环用用continue语句提前结束循环语句提前结束循环n格式:格式:continu

12、e;n结束结束本次本次循环循环17华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.4 提前结束循环提前结束循环double score,sum=0,average;int i;for(i=0;i 30;i+)scanf(%lf,&score);if(score 0)break;sum+=score;average=sum/i;/i 1?printf(“number=%dn”,i);printf(average=%.2fn,average);例例例例 5.65.618华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.4 提前结束循环提前结束循环doubl

13、e score,sum=0,average;int i,n;for(i=0,n=0;i 5;i+)scanf(%lf,&score);if(score 60)printf(Fail:%.2fn,score);continue;sum+=score;n+;average=sum/n;printf(number=%dn,n);printf(average=%.2fn,average);例例例例 5.75.719华商学院华商学院 信息工程系信息工程系2022年年12月月31日日第5章 循环结构程序设计程序举例程序举例520华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序

14、举例程序举例有两个整数有两个整数a=1,b=2,要求将二者的值,要求将二者的值互换互换(即即a=2,b=1),如何实现?,如何实现?t=a;a=b;b=t;21华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例斐波那契数列斐波那契数列 ,int i,f1=1,f2=1;for(i=0;i 20;i+)printf(%12d%12d,f1,f2);if(i%2)putchar(n);f1=f1+f2;f2=f2+f1;例例例例 5.85.8f1f1 f2f2 f1f1f2f2 f1f1f2f21 11 1 2 23 35 58 822华商学院华商学院 信息

15、工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例判断素数判断素数int i,num,k;printf(Please input a integer number:n);scanf(%d,&num);k=(int)sqrt(double)num);for(i=2;i k)printf(%d is a prime number.n,num);elseprintf(%d is not a prime number.n,num);例例例例 5.95.923华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例char c;while(c=getc

16、har()!=n)if(c=a&c=A&c Z&c z)c-=26;putchar(c);putchar(n);例例例例 5.105.1024华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例求求1!+2!+3!+20!for(i=1,f=1,sum=0;i=1;i-)p=2*(p+1);printf(p=%dn,p);运行结果:运行结果:p=1534习题习题习题习题 4 426华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例完数完数(完美数完美数)n一个数恰好等于一个数恰好等于除它本身之外的其除它本身之外的其它

17、因子之和它因子之和n6=1 2 3(6的因子是的因子是1,2,3)求求1000以内的完数?以内的完数?void main()int i;for(i=2;i=1000;i+)WanShu(i);/main()完完完完 数数数数27华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例void WanShu(int num)int i,sum;for(i=1,sum=0;i num;i+)if(num%i=0)sum+=i;if(sum=num)printf(%d:nIts factors are,num);for(i=1;i num;i+)if(num%i=0

18、)printf(%d,i);printf(nn);/WanShu()完完完完 数数数数28华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例void WanShu(int num)int i,sum,k;k=num/2;for(i=1,sum=0;i=k;i+)if(num%i=0)sum+=i;if(sum=num)printf(%d:nIts factors are,num);for(i=1;i=k;i+)if(num%i=0)printf(%d,i);printf(nn);/WanShu()完完完完 数数数数29华商学院华商学院 信息工程系信息工程

19、系2022年年12月月31日日5.5 程序举例程序举例最大公最大公约约数数、最小公倍数最小公倍数?void main()int a,b,yue,bei;printf(Please input two numbers:n);scanf(%d%d,&a,&b);yue=GYS(a,b);bei=GBS(a,b);printf(最大公约数:最大公约数:%dn最小公倍数:最小公倍数:%dn,yue,bei);/main()30华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例int GYS(int a,int b)int yu;doyu=a%b;a=b;b=yu

20、;while(b!=0);/while(b)return a;/GYS()最大公约数最大公约数最大公约数最大公约数31华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例int GBS(int a,int b)return a*b/GYS(a,b);/GBS()最小公倍数最小公倍数最小公倍数最小公倍数32华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例打印图案打印图案习题习题习题习题6 601234560*1*2*3*4*5*6*j ji i33华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.

21、5 程序举例程序举例int i,j;/i:行,:行,j:列:列for(i=0;i=3;i+)for(j=0;j 3-i;j+)putchar();for(;j=3+i;j+)putchar(*);putchar(n);/0 3行行for(i=4;i=6;i+)for(j=0;j i-3;j+)putchar();for(;j=9-i;j+)putchar(*);putchar(n);/4 6行行习题习题习题习题6 634华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例百钱买百鸡百钱买百鸡n鸡翁一值钱五,鸡母一值钱四,鸡雏三值鸡翁一值钱五,鸡母一值钱四,

22、鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?各几何?百钱买百鸡百钱买百鸡百钱买百鸡百钱买百鸡35华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例int cock,hen,chicken;for(cock=1;cock 20;cock+)for(hen=1;hen 25;hen+)chicken=100-cock-hen;if(chicken%3=0)if(cock*5+hen*4+chicken/3=100)printf(cock=%dnhen=%dnchicken=%dn,cock,hen,chicken)

23、;百钱买百鸡百钱买百鸡百钱买百鸡百钱买百鸡36华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例/*A-iB-jC-k*/char i,j,k;for(i=X;i=Z;i+)for(j=X;j=Z;j+)for(k=X;k=Z;k+)if(i!=j)&(j!=k)&(i!=k)&(i!=X)&(k!=X)&(k!=Z)printf(A-%cnB-%cn C-%cn,i,j,k);习题习题习题习题 7 737华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例for(i=X;i=Z;i+)for(j=X;j=Z;j+)

24、if(i!=j)for(k=X;k=Z;k+)if(j!=k)&(i!=k)if(i!=X)&(k!=X)&(k!=Z)printf(A-%cnB-%cnC-%cn,i,j,k);习题习题习题习题 7 738华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例同构数同构数n一个数是它平方数的最后一个数是它平方数的最后n位数位数n5*5=25n6*6=36n25*25=625n求求10000以内的同构数?以内的同构数?同构数同构数同构数同构数39华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例int Digit(in

25、t fig);/返回位数返回位数void main()int TongGou(int fig);printf(The numbers:n);for(int i=1;i 10000;i+)if(TongGou(i)printf(%dt%dn,i,i*i);/main()同构数同构数同构数同构数40华商学院华商学院 信息工程系信息工程系2022年年12月月31日日5.5 程序举例程序举例int TongGou(int fig)int dgt,sqr,d3,d2,d1,d0,y4,y3,y2;dgt=Digit(fig);/dgt:位数位数sqr=fig*fig;y4=sqr%10000;d3=y4

26、/1000;y3=y4%1000;d2=y3/100;y2=y3%100;d1=y2/10;d0=y2%10;switch(dgt)case 1:if(d0=fig)return 1;else return 0;case 2:if(d1*10+d0=fig)return 1;else return 0;case 3:if(d2*100+d1*10+d0=fig)return 1;else return 0;case 4:if(d3*1000+d2*100+d1*10+d0=fig)return 1;elsereturn 0;/TongGou同构数同构数同构数同构数41华商学院华商学院 信息工程

27、系信息工程系2022年年12月月31日日5.5 程序举例程序举例void main()int i,div=10,sqr;printf(The numbers:n);for(i=1;i 10000;i+)if(i=div)div*=10;sqr=i*i;if(sqr%div=i)printf(%dt%dn,i,sqr);/main()同构数同构数同构数同构数42华商学院华商学院 信息工程系信息工程系2022年年12月月31日日上机作业上机作业char 上机作业上机作业()书上例题书上例题;课后习题课后习题;课件中补充的习题课件中补充的习题;/上机作业上机作业()43华商学院华商学院 信息工程系信息工程系2022年年12月月31日日课后作业课后作业char 课后作业课后作业()P137_t3();九九乘法表九九乘法表;/课后作业课后作业()44 The end!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com