- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言课件第6章(大一)
算法 排序算法 嵌套与递归 深入模块化设计与应用 嵌套与递归 函数的嵌套调用的执行过程: 算法 排序算法 嵌套与递归 深入模块化设计与应用 嵌套与递归 计算s=1k+2k+3k+……+Nk 算法 排序算法 嵌套与递归 深入模块化设计与应用 嵌套与递归 #include stdio.h void main(void) { int n=0,k=0; printf(Input add to number:); scanf(%d,n); printf(Input number of power:); scanf(%d,k); printf(Sum of %d powers of integers from 1 to %d = ,k,n); printf(%ld\n,Add(n,k)); } 算法 排序算法 嵌套与递归 深入模块化设计与应用 嵌套与递归 long Add(int n,int k) { long lSum=0; int i; for(i=1;i=n;i++) lSum += Power(i, k); return lSum; } long Power (int n,int k) { long lPowerVal=n; int i; for(i=1;ik;i++) lPowerVal *= n; return lPowerVal; } 例6-4 求n! 问题分析:计算n!的公式可写成如下形式 显然,这是一个递归形式的公式,在描述“阶乘”算法时又用到了“阶乘”的概念。递归结束的条件是n = 0或1。 #include stdio.h #include stdlib.h long fac (int n) /*计算n!*/ { long f; if(n0) printf(n0,data error!); else if(n==0||n==1) f=1; else f=fac(n-1)*n; return (f); } void main(void) { int n=0,k=0; long s; printf(input number:); scanf(%d,n); s=fac(n); printf(n!=%d\n,s); /*计算结果并输出*/ } 递归出口 递归式 算法 排序算法 嵌套与递归 fac(5) fac(4) fac(3) fac(2) fac(1) 1 2 6 24 #include stdio.h #include stdlib.h long fac (int n) /*计算n!*/ { long f; if(n0) printf(n0,data error!); else if(n==0||n==1) f=1; else f=fac(n-1)*n; return (f); } long fac (int n) /*计算n!*/ { long f; if(n0) printf(n0,data error!); else if(n==0||n==1) f=1; else f=fac(n-1)*n; return (f); } 算法 排序算法 嵌套与递归 算法 排序算法 嵌套与递归 模块间批量数据传递 深入模块化设计与应用 模块间批量数据传递 (1)指针作为函数参数 指针变量存储的是一个地址,通过指针变量可以访问这个地址中所存储的值。如果这个指针变量所指的地址为数组的首地址(数组名),那么按照指针的运算方式就可以访问数组中的所有元素,如果能把这个指针作为函数的参数,则在函数中就可以对此数组中的所有元素进行操作了。这就是在研究模块间批量数据传递时首先谈指针参数的意义之所在。 算法 排序算法 嵌套与递归 模块间批量数据传递 深入模块化设计与应用 例 设计一个有两个参数函数Swap,函数Swap能够完成对这两个参数的值的交换。 演示 算法 排序算法 嵌套与递归 模块间批量数据传递 深入模块化设计与应用 模块间批量数据传递 (2)数组名作为函数参数 1)一维数组作为函数参数 数组是相同类型的数据集合,如果能把它作为函数参数,则能够实现相同类型数据的批量传递。前面刚讲了用指针做为函数的参数,而数组名表示数组的首地址,则数组也能做为函数参数实现数据的批量传递,其中一维数组是最简单的形式。 用数组名作参数,就是将数组的首地址传递给函数 实参
您可能关注的文档
- 2011考研《教育学基础》十二院校版笔记(考研专业笔记,教育专业考研, 考研辅导).doc
- 2011某某建材地板经销商成功经营法则( 29页).ppt
- 2011考研复习计划(绝对让你的复习思路豁然开朗).doc
- 2011版高中英语课时讲练通课件:Module4《A Social Survey-My Neighbourhood》Period 3(外研版必修1).ppt
- 201207批次大学英语(三)复习大纲.doc
- 2011高考化学第一轮课件第1章3节化学反应与能量变化.ppt
- 2011课《医药企业市场营销学》官翠玲博士.ppt
- 2012专业基础课分类模拟题民法学民事法律行为(含答案解析试题).doc
- 2011保利剧院罗永浩(老罗)演讲.ppt
- 2012个人理财分类模拟题个人理财基础(试题及答案).doc
文档评论(0)