C语言循环结构二课件

上传人:博****1 文档编号:585833818 上传时间:2024-09-03 格式:PPT 页数:46 大小:1.44MB
返回 下载 相关 举报
C语言循环结构二课件_第1页
第1页 / 共46页
C语言循环结构二课件_第2页
第2页 / 共46页
C语言循环结构二课件_第3页
第3页 / 共46页
C语言循环结构二课件_第4页
第4页 / 共46页
C语言循环结构二课件_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《C语言循环结构二课件》由会员分享,可在线阅读,更多相关《C语言循环结构二课件(46页珍藏版)》请在金锄头文库上搜索。

1、循环语句循环语句while语句语句dowhile语句语句for语句语句2while语句表达式表达式语句语句真真(非非0)假假(0)while (表达式)循环体语句(表达式)循环体语句3do-while语句表达式表达式语句语句真(真(1)假(非零)假(非零)do 循环体语句循环体语句while (表达式表达式);分号不要少!分号不要少!4for语句表达式表达式1表达式表达式2语句语句表达式表达式3真(非零)真(非零)假(假(0)for (表达式表达式1;表达式;表达式2;表达式;表达式3) 语句语句5break语语句句:break语语句句用用于于循循环环语语句句和和switch语语句句,作作用用

2、是是退退出出结结束束循循环环语语句句和和switch 语语句句,如如:while() . if() break; .breakbreak语句语句6 continue语语句句:跳跳过过循循环环体体下下面面未未执执行行的的语语句句,接着执行循环下一次迭代接着执行循环下一次迭代。如:。如:while( ) if ( ) continue; continuecontinue语句语句7练习练习1:写结果:写结果#include void main() int x=23; do printf(%d,x-); while (!x);238练习练习2:写出结果:写出结果#include void main()

3、 int x=0,y=5,z=3; while (z- 0 & +x5) y=y-1; printf(%d,%d,%dn,x,y,z); 3,2,-19练习练习3:写结果:写结果#include void main() int a,y; a=10,y=0; do a+=2;y+=a; printf(a=%d y=%dn,a,y); if(y20) break; while(a=14);a=12 y=12a=16 y=2810练习练习4:写结果:写结果#include void main() int i;for(i=1;i=5;i+) if(i%2) printf(*); else contin

4、ue; printf(#); printf($n);*#*#*#$11练习练习5:写结果:写结果#include void main() int x=15; while (x10 & x50) x+; if(x/3)x+;break; else continue; printf(%dn,x);1712练习练习6:写结果:写结果#include void main() int a,b;for(a=1,b=1;a=20) break; if(b%3=1) b+=3; continue; b-=5;printf(a=%d,b=%dn,a,b);a=8,b=2213 鸡兔同笼鸡兔同笼,头共有头共有30

5、只只,脚共有脚共有90只只, 计计算鸡算鸡 兔各有多少只兔各有多少只?设设:鸡为鸡为x只只, 兔为兔为y只只 x+y=30 2x+4y=90 编程编程:14#include void main() int x,y; for(x=1;x=29;x+) y=30-x; if(2*x+4*y=90) printf(鸡是鸡是%d只只,兔子是兔子是%d只只n,x,y); 程序:程序:15编程编程:打印打印100 以内个位数为以内个位数为6且能被且能被3 整除的所有数整除的所有数#include void main() int i,j; for( i = 0;i = 9;i+ ) j=i*10+6;if(

6、j%3=0) printf(%d ,j); 16编程编程:求求,/2=1+(1/3)+(1/3*2/5)+(1/3*2/5*3/7)+(1/3*2/5*3/7*4/9)+直到某项小于直到某项小于0.0005时。时。#include void main() double s,t,pi=0; int n=1; s=0.0; t=1.0; while(t=0.0005) s+=t; t=t*n/(2*n+1); n+; pi=2*s; printf(pi=%lfn,pi);17编程编程:分别统计下列数分别统计下列数0,1,2的个数,并求各位上的的个数,并求各位上的最大数最大数#include voi

7、d main() long n=120122058L, c0=0,c1=0,c2=0,max=0; while(n0) switch(n%10) case 0:c0+;break; case 1:c1+;break; case 2:c2+; if(n%10max) max=n%10; n/=10;printf(“0的个数为:的个数为:%ld, 1的个数为:的个数为:%ld, 2的个数为:的个数为:%ld,各位最大数各位最大数:%ld,c0,c1,c2,max);18编程编程:求求S=3/22-5/42+7/62-+(-1)n-1(2n+1)/(2*n)2的和直到的和直到2n+1/(2*n)2n

8、+1/(2*n)2 2|=10|=10-3-3为止为止19#include main() int i, k; double s, t, x; s=0; k=1; i=2; x=3.0/4; while(x 1e-3) s=s+k*x; k=k* (-1); t=2*i; x=(t+1)/(t*t); i+; printf(nThe result is: %lfn,s);程序:程序:20编程:求编程:求1+1/(1+2)+1/(1+2+3)+1/(1+2+3+50)#include void main() double sum=1.0; int i,t=1; for(i=2;i=3)编程编程:2

9、2分析:分析:设当前项为设当前项为f,第一项为,第一项为f1,第二项为,第二项为f2。首。首先根据先根据f1和和f2推出推出f,再将,再将f2作为作为f1,f作为作为f2,再,再推出推出f,如此一直递推下去:,如此一直递推下去: 1 1 2 3 5第一次第一次 f1 + f2 f 第二次第二次 f1 + f2 f 第三次第三次 f1 + f2 f23#include void main()int f1=1,f2=1; int i; for(i=1;i=15;i+) printf(%12d %12d,f1,f2); if(i%2=0) printf(n); f1=f1+f2; f2=f2+f1;

10、 程序:程序:24求:求:y= m值由键盘输入。值由键盘输入。编程编程25编程编程求:求:s=1+(1+20.5)+(1+20.5+30.5)+(1+20.5+30.5+n0.5)当当n=20时的和。时的和。26循环嵌套的引进循环嵌套的引进打印:打印:1*1=1 1*2=2 1*3=31*9=9#include void main() int i=1,j; for( j = 1;j= 9;j+) printf(%d*%d=%d , i , j,i*j); printf(n); 27循环嵌套的引进循环嵌套的引进打印:打印:1*1=1 1*2=2 1*3=3 1*9=9 2*1=2 2*2=4 2

11、*3=6 2*9=18 3*1=3 3*2=6 3*3=9 3*9=27 9*1=9 9*2=18 9*3=299*9=8128#include void main() int i,j; for(i=1;i=9;i+) for( j= 1;j = 9;j+ ) printf(%d*%d=%3d , i , j,i*j); printf(n); 程序:程序:29循环的嵌套循环的嵌套一个循环体内又包含另一个完一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,内嵌的循环中还可以嵌套循环,这就是多重循环。这就是多重循环。30for()fo

12、r()whilewhile()() DoDo for()for() while();while();while()while() for() for() for()for() for()for() 三种循环可以互相嵌套三种循环可以互相嵌套,例如以下例如以下四种均为合法的嵌套循环结构四种均为合法的嵌套循环结构31执行规律执行规律:一般外循环变量每改变一一般外循环变量每改变一 个值个值,内循环要完整的循环内循环要完整的循环 一遍。一遍。32练习练习:写结果写结果#include main() int i,j,m=1;for(i=1;i0;j-) if(i*j3) break;m*=i*j; pri

13、ntf(m=%dn,m);m=633练习练习:写结果写结果#include main() int m,n;scanf(%d%d,&m,&n);while(m!=n) while(mn)m=m-n;while(mn)n=n-m;printf(%dn,m);程序运行后,当输入程序运行后,当输入 14 63时时,输出结果是输出结果是_.734练习练习:写结果写结果#include void main() int i,j,a=0; for(i=0;i2;i+) for(j=0;j4;j+) if(j%2) break; a+; a+; printf(%dn,a);435练习练习:写结果写结果#incl

14、ude void main() int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2) continue; x+; x+; printf(x=%dn,x);x=836例例: :打印如图所示的乘法表。打印如图所示的乘法表。 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 8137算法思路:算法思路: 可以用外循环变量可以用外循环变量i控制行,内控制行,内

15、循环变量循环变量j控制列,控制列,i的变化范围为的变化范围为1到到9,而而j的变化范围由的变化范围由i决定,即第决定,即第i行行时时j的变化为从的变化为从1到到i, i每取一个值每取一个值,j都会从都会从1变到变到i。行列确定后每个数。行列确定后每个数即为即为i*j。38#include void main() int i,j; for( i = 1;i = 9;i+ ) for( j = 1;j = i;j+) printf(%3d , i * j); printf(n); 程序:程序:39算法和程序参考书算法思路算法思路:判断判断m是否为素数是否为素数,让让m被被2到到(k)除除,如果如果

16、m能被能被2k之间任何一个整数整除之间任何一个整数整除,则则提前结束循环提前结束循环,此时此时i必然小于或等于必然小于或等于k;如果如果m不不能被能被2k之间的任一整数整除之间的任一整数整除,则在完成最后一次则在完成最后一次循环后循环后i还要加还要加1,因此因此i=k+1,然后才终止循环然后才终止循环.在循在循环之后判别环之后判别i的值是否大于或等于的值是否大于或等于k+1,若是若是,则表则表明未曾被明未曾被2k之间任一整数整除过,输出之间任一整数整除过,输出“是素是素数数”打印打印:100200间的全部素数间的全部素数40#include #include void main() int m

17、,k,i,n=0; printf(100200之间的全部素数是之间的全部素数是:n); for(m=101;m=199;m=m+2) k=(int)sqrt(m); for(i=2;i=k;i+) if (m%i=0) break; if(i=k+1)printf(%d ,m); 程序:程序:41例:百鸡问题:例:百鸡问题:“鸡翁一,值钱五;鸡母鸡翁一,值钱五;鸡母 一,值钱三;鸡雏三,值钱一。百钱买一,值钱三;鸡雏三,值钱一。百钱买 百鸡,问鸡翁、母、雏各几何?百鸡,问鸡翁、母、雏各几何?设:设: 公鸡公鸡x只,母鸡只,母鸡y只只、小鸡小鸡z只只x+y+z=1005x+3y+z/3=1004

18、2#include void main() int x,y,z;for(x=0;x=19;x+) for(y=0;y=33;y+) z=100-x-y; if (5*x+3*y+z/3=100 & z%3=0) printf(公鸡是公鸡是%d只,母鸡是只,母鸡是%d只,雏鸡是只,雏鸡是%dn,x,y,z); 程序:程序:43编程:求编程:求1000以内的所有完全数(说明:一个数如果以内的所有完全数(说明:一个数如果恰好等于它的因子之和(除自身外),则称该数为完恰好等于它的因子之和(除自身外),则称该数为完全数全数 例:例:6123, 6为完全数为完全数 )#include void main() int a,i,m; for(a=1;a=1000;a+) for(m=0,i=1;i=a/2;i+) if(a%i=0) m+=i; if(m=a) printf(%4d,a); 44 * * * *编程:打印下列图形:编程:打印下列图形:45#include void main() int i,j;for(i=1;i=4;i+)for(j=1;j=4-i;j+) printf( ); for(j=1; j=2*i-1;j+) printf(*); printf(n);程序:程序:46

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号