樊媛媛c语言程序设计函数PPT学习教案

上传人:辰*** 文档编号:86520708 上传时间:2022-05-07 格式:PPTX 页数:47 大小:173.03KB
返回 下载 相关 举报
樊媛媛c语言程序设计函数PPT学习教案_第1页
第1页 / 共47页
樊媛媛c语言程序设计函数PPT学习教案_第2页
第2页 / 共47页
樊媛媛c语言程序设计函数PPT学习教案_第3页
第3页 / 共47页
点击查看更多>>
资源描述
会计学1樊媛媛樊媛媛c语言程序设计函数语言程序设计函数第1页/共47页35第2页/共47页式,但类型要一致。式,但类型要一致。第3页/共47页 i f ( m % i = = 0 ) ?if(prime(i) ) s+=i; ?printf(“n %d”,s); int m)int returm 0;else return 1;return 1;第4页/共47页 int nint nint int 第5页/共47页不需声明的情况:不需声明的情况:int char int char 主调函数在后主调函数在后(P165)(P165)第6页/共47页第7页/共47页第8页/共47页157111520int a, int bint a, int bfloatfloati=a;i=b;i+i=a;i1n1时时第11页/共47页n n* *fac(n-1);fac(n-1);第12页/共47页f=fac(4); n=4if(n=0|n=1)f=1;else f=n*fac(n-1);return(f) n=3if(n=0|n=1)f=1;else f=n*fac(n-1);return(f )n=2if(n=0|n=1)f=1;else f=n*fac(n-1);return(f) n=1if(n=0|n=1)f=1;else f=n*fac(n-1);return(f) 第13页/共47页例hanoi (汉诺)塔问题十九世纪未,欧洲珍奇商店出现一种汉诺塔游戏,并有推销材料,说是古代印度布拉玛庙里的僧侣们当时正在玩这种游戏,如果游戏结束,世界未日即来临。一、规则及分析:n个盘子从一根针移到另一根针,每次只能移动一个盘子,不允许大盘在小盘上面。共有三根针,n个盘子由A移到C,需移动的次数是2n -1, 若64个盘子移动的次数为:264 - 1=18, 446, 744, 073, 709, 551, 600一年的秒数是:365 x 24 x 60 x 60=315360001844674407370951160031536000=58494217355年即:5849亿年, 从能源角度推算, 太阳系寿命只有150亿年ABC第14页/共47页二、方法与步骤1.将A上n-1个盘子借助C移到B2.把A上剩下一个盘子送到C3.将n-1个盘子从B借助A移到C三、实例:将A上3个盘子移到C步骤:1.A上两个盘子借助C移到B 2.A上最后一个盘子移到C 3.B上两个盘子借助A移到C第一步进一步分解:1.1 A上一个盘子从AC1.2 A上一个盘子从AB1.3 C上一个盘子从CB第二步进一步分解: A上最后一个盘子从AC第三步进一步分解:3.1 B上一个盘子从BA3.2 B上一个盘子从BC3.3 A上一个盘子从ACABC第15页/共47页结论:13步都是把n-1个盘子从一根针移到另一根针上,方法一样,只是针的名称不同而已,为使之一般化,将13步表示为:将one 针上的n-1个盘子借助 two针,移到three 针,只是对应关系不同。第一步对应关系:one A two C three B第三步对应关系:one B two A three C把上面三个步骤分成两类操作:1.将 n - 1个盘子从一根针移到另一根针上(n 1)2.将 1个盘子从一根针移到另一根针上hanoi(n,one,two,three)表示将n个盘子从one借助two移到three;move(x,y)表示将一个盘子从x移到y。 main n=3 n=2 n=1 m=3 hanoi(3,A,B,C) hanoi(2,A,C,B) hanoi(1,A,B,C) hanoi(3,A,B,C) hanoi(2,A,C,B) hanoi(1,A,B,C) move(A,C) move(A,C) move(A,B) hanoi(1,C,A,B) hanoi(1,C,A,B) move(C,A) hanoi(2,B,A,C) hanoi(2,B,A,C) hanoi(1,B,C,A) hanoi(1,B,C,A) move(B,B) move(B,C) hanoi(1,A,B,C) hanoi(1,A,B,C) move(A,C)第16页/共47页eg8-07.c 用递归的方法解决汉诺塔程序如下:void move(char x, char y)printf(“%c%c n”, x,y); void hanoi(n, one, two, three)char one, two, three; int n;if(n = 1) move(one,three); else hanoi(n-1, one, three, two); move(one, three); hanoi(n-1, two, one, three); main( )int m; printf(“input the number of diskes:”); scanf(“%d”,&m); printf(“the step to moving %3d diskes: n”,m); hanoi(m, A, B, C );运行:input number of diskes: 3 the step to moving 3 diskes: A C A B C B A C B A B C A C第17页/共47页第18页/共47页 对应的实参也应为数组对应的实参也应为数组型参数组的长度可省略型参数组的长度可省略第19页/共47页xa 100 n n值传递地址传递 100 n=5; 5 a0=3 ; 3 第20页/共47页35第21页/共47页eg8-10.Ceg8-10.C第22页/共47页xa第23页/共47页at(a); 行数不等情况?通用函数的处理?行数不等情况?通用函数的处理?第24页/共47页 at(a,3); 第25页/共47页 第26页/共47页第27页/共47页第28页/共47页全局变量c1,c2的作用范围 全局变量p,q的作用范围 第29页/共47页第30页/共47页用全局变量传递结果eg8-13-1.Ceg8-13-1.Cmain() int a100,i; float avg; for(i=0;i100;i+) scanf(“%d”,&ai); avg=aver(a,100); printf(“n%d,%d,%f”,max,min,avg);第31页/共47页第32页/共47页分析全局变量与局部变量同名的情况分析全局变量与局部变量同名的情况eg8-13-3.Ceg8-13-3.C max min max min 强龙不压地头蛇!强龙不压地头蛇!第33页/共47页4526abcabad4721120第34页/共47页据需要动态分配存储单元的方式。据需要动态分配存储单元的方式。变量变量变量变量局部变量局部变量动态存储方式变量动态存储方式变量全局变量全局变量静态存储方式变量静态存储方式变量空间角度空间角度生存期角度生存期角度第35页/共47页。程序区程序区 静态存储区静态存储区 动态存储区 程序开始运行时分配空间,运行结束时释放主要存放全局变量和静态局部变量根据需要动态分配,动态释放的区域主要存放动态局部变量和现场保护等 用户区用户区第36页/共47页缺省时为auto第37页/共47页第38页/共47页y=y=2x-1 2x-1 第一次计算第一次计算 3x+1 3x+1 第二次计算第二次计算 4x+2 4x+2 其他其他 第39页/共47页eg8-15.Ceg8-15.C第40页/共47页第41页/共47页第42页/共47页第43页/共47页 extern int y; int f3() y=10; int f4() y=100; static int y;第44页/共47页外部函数可以为其他文件中的函数外部函数可以为其他文件中的函数所调用。所调用。内部函数只为本文件中的函数所调内部函数只为本文件中的函数所调用(用(保护保护)。)。第45页/共47页main() f3(); 允许允许 int f1() f4(); 不允许不允许extern int f3() f4(); 允许允许 static int f4() 第46页/共47页
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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