c语言课件第6章(大一).ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)一维数组作为函数参数 数组是相同类型的数据集合,如果能把它作为函数参数,则能够实现相同类型数据的批量传递。前面刚讲了用指针做为函数的参数,而数组名表示数组的首地址,则数组也能做为函数参数实现数据的批量传递,其中一维数组是最简单的形式。 用数组名作参数,就是将数组的首地址传递给函数 实参

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档