第5章循环结构程序设计0.46ppt课件

上传人:ni****g 文档编号:590201902 上传时间:2024-09-13 格式:PPT 页数:37 大小:187KB
返回 下载 相关 举报
第5章循环结构程序设计0.46ppt课件_第1页
第1页 / 共37页
第5章循环结构程序设计0.46ppt课件_第2页
第2页 / 共37页
第5章循环结构程序设计0.46ppt课件_第3页
第3页 / 共37页
第5章循环结构程序设计0.46ppt课件_第4页
第4页 / 共37页
第5章循环结构程序设计0.46ppt课件_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《第5章循环结构程序设计0.46ppt课件》由会员分享,可在线阅读,更多相关《第5章循环结构程序设计0.46ppt课件(37页珍藏版)》请在金锄头文库上搜索。

1、 第第5章章 循环结构程序设计循环结构程序设计5.1 四种循环格式5.1.1 goto 格式 if ; goto 例: 计算s=1+2+3+100main()int i, s=0;loop: if (i101) s=s+i; i=i+1; goto loop;printf(“s=%dn”,s);5.1.2 while格式 while ; 例: 计算s=1+2+3+100main()int i, s=0;while (i101) s=s+i; i=i+1; printf(“s=%dn”,s);例: 计算s=1+2+3+100main()int i, s=0;do s=s+i; i=i+1; wh

2、ile (i101);printf(“s=%dn”,s);5.1.4 for() 格式for(;);说明:1. 决定了循环的初值, 决定循环的条件, 决定循环的增量。在循环中只执行一次。,在循环中每次都要执行一次。例:求S=1+2+3+100程序1: main() int i, s=0; for (i=1; i101; i+) s+=i; printf(“sum%dn”, s); 程序2: main() int i=1, s; for (s=0; i101; i+) s+=i; printf(“sum%dn”, s); 程序3: main() int i=1, s=0; for (; i101

3、;) s+=i+; printf(“sum%dn”, s); 程序4: main() int i=1, s=0; for (; i99) break; s=s+i; printf(“s=%dn”,s); 6. 可以用continue命令中断当前一次循环。例: 计算s=1=3+5+99main() int i, s=0; for (i=1;i100;i+) if (i%2=0) continue; s=s+i; printf(“s=%dn”,s);5.2 多层循环例:分别计算 2!,3!,4!,10! 方法一:(双层循环) main() int I,j; for (i=2;i11;i+) lon

4、g int f=1; for(j=1;j=i; j+) f=f*j; printf(“s=%ldn”,f); 应用举例1: 输出九九乘法表 1 2 3 4 5 6 7 8 91 1 2 3 4 5 6 7 8 92 2 4 6 8 10 12 14 16 189 9 18 27 36 45 54 63 72 81 main() int k,i,j; printf(“ “); for(k=1;k10;k+) printf(“%5d”,k); printf(“nn”); for(k=1;k10;k+) printf(“%-5d”,k); for(j=1;j10;j+) printf(“%-5d”,

5、k*j); printf(“n”); 应用举例2:判断m是否是素数。方法一、 main() m=17 int k,m; 被216除 scanf(“%d”,&m); 除不尽为素数 for(k=2;km;k+) if (m%k=0) break; if(k=m) printf(“%d is a prime number”,m); 应用题3:求出100以内的所有素数 main() int k,m; for(m=3;m100;m=m+1); for(k=2;km;k+) if (m%k=0) break; if(k=m) printf(“%d is a prime number”,m); )应用题4:

6、求m,n 的最大公约数main() int m,n,r; m % n = r scanf(“%d%d”,&m,&n); 24 16 8 m1=m;n1=n; 16 8 0 r=m%n; while (r!=0) m=n;n=r;r=m%n; printf(“m=%-5dn=%-5dr=%-5dn”,m1,n1,n); 应用题应用题5:求:求Fibonaccii(斐波那契斐波那契)数列中前数列中前20项项中每一项递推法)中每一项递推法) 0,1,1,2,4,7,13, a b c d程序:程序: 0 1 1 2 main() 1 1 2 4 int a=0,b=1,c=1,d; 1 2 4 7

7、for(k=1;k18;k+); 2 4 7 13 d=a+b+c; printf(“%5d”,d); a=b;b=c;c=d; 应用题6:2000年人口13亿,年增长0.5%,多少年后达到或超过20亿? main() int n=0; float f=13,e=0.005; while (f20) f=f*(1+e); n=n+1; printf(“%dn”,n); 应用题应用题7: 元买百鸡。公鸡元买百鸡。公鸡5元一只,母鸡元一只,母鸡3元一元一只,小鸡只,小鸡1元两只。问元两只。问100元买鸡多少只穷举元买鸡多少只穷举法)。法)。main() int cock,hen,chick; fo

8、r(cock=1;cock21;cock+) for(hen=1;hen34;hen+) chick=100-cock-hen; if(cock*5+hen*3+chick/2=100) printf(“%5d%5d%5dn”,cock,hen,chick); 应用题8:用矩形法求定积分: (a=0, b=pi/2)abh=(b-a)/nArea1=f(x1)*hfor(x=a;xb;x=x+h) s=s+f(x)*h;程序:程序:#include math.hmain() float a,b,x,h,s=0; scanf(%f%f,&a,&b); h=(b-a)/1000; for(x=a;

9、xb;x=x+h) s=s+(sin(x)+sin(x+h)*h/2; printf(area=%fn,s); 应用题9:根据以下算术式,求A、B、C、D A B C D -C D C _ A B C程序:main() int a,b,c,d,k1,k2; for(a=1;a10;a+) for(b=0;b10;b+) for(c=1;c10;c+) for(d=0;d10;d+) k1=a*1000+b*100+c*10+d; k2=c*100+d*10+c+a*100+b*10+c; if(k1=k2) printf(“%d%d%d%d”,a,b,c,d); 应用题10:输出图形 A A

10、B C A B C D E A B C D E F G 程序;main() int k1,k2; clrscr(); for(k1=1;k110;k1+) for(k2=1;k240-k1;k2+) printf( ); for(k2=0;k21e-3); printf(“%f”,x1); x=2.33333题12:找出1000以内的水仙花数。三位数的立方和等于自身13+53+33=153)程序:main()int a,b,c, k1,k2; for(a=0;a10;a+) for(b=0;b10;b+) for(c=0;c10;c+) k1=a*a*a+b*b*b+c*c*c; k2=a*1

11、00+b*10+c; if(k1=k2) printf(“%dn”,k2); 题13:求 s=a+aa+aaa+aaaa (a=2,8个a)main()int a,n;scanf(“%d%d”,&a,&n); long k=a,s=0; for(i=1;i=n;i+) s+=k; k=k*10+a; printf(“%ldn”,s); I k s a aa aaa8 aaaa 题14: 用牛顿迭代法求 ,a从1-10的平方根。方程: x2-a=0,迭代式: xn+1=(xn+a/xn)/2#include “math.h”main() =x float a,x0,x1; for(a=1;a0.

12、0001); printf(“%fn”,x1); a=x2 f(x)= x2-a=0 f(x0)=2x0 f(x0)=f(x0- 0)/(x1-x0) xn+1=(xn+a/xn)/2 作业: 教材 实习报告 春天、阳光、空气、鲜花、明天春天、阳光、空气、鲜花、明天题4: 用矩形法求一元函数f(x)=ln(x+1)+x/2,在区间1,5上的积分近似值S,保留2位小数main()float a=1,b=5,x,sum=0,h.n=100; H=(b-a)/n; For(x=a;xb;x+=h) sum+=log(x+1)+x/2; printf(“%fn”,sum*h);题5: 用矩形法求一元函

13、数f(x)=ln(x+1)+x/2,在区间1,5上的积分近似值S,保留2位小数方法一:main()float a=1,b=5,x,sum=0,h.n=100,d1,d2; H=(b-a)/n; For(x=a;xb;x+=h) d1= log(x+1)+x/2; d2= log(x+h+1)+(x+h)/2; sum+=d1+d2; printf(“%fn”,sum*h/2);方法二方法二:main()float a=1,b=5,x,sum=0,h.n=100; H=(b-a)/n; For(x=a+h;xb;x+=h) sum+= log(x+1)+x/2; sum= log(a)+a/2+ log(b)+b/2+sum*2; printf(“%fn”,sum*h/2);

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

最新文档


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

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