- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第23次(函数的嵌套调用、递
Date: * IT Education Training IT Education Training Neusoft Institute of Information Date: * 办公室:C7座201 EMAIL:huang.w@ 课件下载网址: 任课教师:黄伟 第五章 函 数 授课要点 函数的嵌套调用 函数的递归调用 函数的嵌套调用 f1(){ … f2(); … } f2(){ … f3(); … } f3(){ … … … } 函数的嵌套调用举例1 main(){ int a=3,b=5,s; s=cal(a,b); printf(“%d”,s); } int cal(int x,int y){ int result,s1,s2; s1=powl(x,y); s2=pow(y,x); result=s1+s2; return result; } int pow(int m,int n){ int i,res=1; for(i=0;in;i++) res *=m; return res; } 求 3 + 5 。 5 3 函数的嵌套调用举例2 自定义函数mymax2(),求出2个参数的最大值,然后定义函数 mymax3(),调用mymax2()求出3个参数中的最大值,将值返回给主函数,输出该结果。 函数首部为: float mymax3(float x, float y, float z) 模仿练习 1、自定义函数mymax (),求出3个参数的最大值; 自定义函数 mymin(),求出3个参数的最小值; 自定义函数mysub(),调用mymax()和mymin()求出3个参数的最大值与最小值的差; 在主函数中调用mysub(),输出结果。 函数首部为: float mymax (float x, float y,float z) float mymin(float x,float y,float z) float mysub (float x,float y,float z) 2、计算s=1k+2k+3k+……+N k 函数首部为:long f1(int n,int k) /*计算n的k次方*/ long f2(int n,int k) /*计算1到n的k次方之累加和*/ 案例解答 #define K 4 #define N 5 long f1(int n,int k) /*计算n的k次方*/ { long power=n; int i; for(i=1;ik;i++) power *= n; return power; } long f2(int n,int k) /*计算1到n的k次方之累加和*/ { long sum=0; int i; for(i=1;i=n;i++) sum += f1(i, k); return sum; } main() { printf(Sum of %d powers of integers from 1 to %ld = ,K,N); printf(%d\n,f2(N,K)); } 函数的递归调用 C语言的函数调用允许直接或间接地调用该函数本身,称为函数的递归调用。 含有直接或间接调用自己的函数称为递归函数。 函数f 调用函数f 函数f1 调用函数f2 调用函数f1 函数f2 直接调用本身 间接调用本身 函数的递归调用举例 用递归函数求4! 4! = 4*3! ; 3! = 3*2! ; 2! = 2*1! ; 1! = 1 ; n! = n*(n-1)! 1! = 1 函数的递归调用举例 例:用递归函数求n! n! = n * (n-1)! int myFac( int n) { if (n==1) return 1; //递归的结束条件 return n*myFac(n-1); } myFac(n)就是求n! myFac(n-1)就是求(n-1)! 函数的递归调用举例 fac(3)*4 fac(2)*3 fac(1)*2 reutrn(1) reutrn(1*2) reutrn(2
您可能关注的文档
- 程序何以实现公正?--从审判过程分析(李红辉).doc
- 移动通信第8、9章 CDMA数字蜂窝移动通信系统.ppt
- 程控音频OCL_功率放大器.doc
- 移动网经典老教材.doc
- 程玉竹答辩论文1.ppt
- 税务会计师专业资格认证.doc
- 稀有鸟类朱鹮回归自然.ppt
- 税收基础知识考试题库8.doc
- 税收执法风险的几点思考.doc
- 移动互联网产业.ppt
- 部编版一年级语文下册第四单元《8 夜色》教学课件(2025年春-新编教材).pptx
- 江苏省盐城市五校2024-2025学年高一下学期4月期中联考数学试卷(含答案).pdf
- 2025年高一语文教师工作总结简单版(六).docx
- 第12课《台阶》课件 2024—2025学年统编版语文七年级下册(共39张PPT).pptx
- 部编版一年级语文下册第四单元《语文园地四》教学课件(2025年春-新编教材).pptx
- 部编版一年级语文下册第四单元《9 端午粽》教学课件(2025年春-新编教材).pptx
- 指导技能的关键要素与提升的策略研究与分享.docx
- 湖南省永州四中直升班2025届高三(下)适应性数学试卷(含答案).pdf
- 湖北省荆荆宜襄·四地七校联盟2024-2025学年高一(下)期中联考数学试卷(含答案).pdf
- 2025年04月17日袁荣的初中历史组卷.docx
文档评论(0)