称为函数的递归调用.PPTVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
称为函数的递归调用

例 全局变量与局部变量同名 #include stdio.h int a=3, b=5; /* a,b为外部变量*/ a,b作用范围 void main ( ){ int a=8; /*a为局部变量 */ 局部变量a作用范围 printf (“%d”, max (a,b)); //全局变量b的作用范围 } int max (int a, int b){ /*a,b为局部变量 */ int c; c=a>b?a∶b; // 形参a、b作用范围 return (c); } 补充例子 形参同名问题 与局部变量同名:发生重复定义错误 与全局变量同名:可以,但要注意区分变量有效范围 #include “stdion.h” int vara; int main(){ int myfun(int); vara=6; printf(“%d\n”, myfun(4)); return 0; } int myfun(int vard){ int varb,varc; varb=5; varc=vara+varb+vard; return varc; } * * * * int main() // 主函数开始 { // 测试一些结果 printf( C(6,0)=%d\n“, Cmn(6,0) ); printf( C(6,1)=%d\n“, Cmn(6,1) ); printf( C(6,2)=%d\n“, Cmn(6,3) ); printf( C(6,6)=%d\n“, Cmn(6,6) ); return 0; } // 主函数结束 数组元素作函数实参 数组名作函数参数 多维数组名作函数参数 14.3 数组作为函数参数 13讲中 有参函数定义的一般形式 定义有参函数的一般形式为: 类型标识符 函数名(形式参数表列) { 声明部分 语句部分 } 例如: int max(int x,int y)  {int z;/ *函数体中的声明部分*/   z=x>y?x∶y; return(z); } 13讲中 函数参数和函数的值 13.3.1 形式参数和实际参数 形式参数:函数定义时,括号中的变量名称为“形式参数”(简称“形参”)。 实际参数:调用一个函数时,括号中的参数称为“实际参数”(简称“实参”)。实参可以是一个表达式 函数返回值:return后面的括号中的值作为函数带回的值(称函数返回值)。 14.3 数组作为函数参数 14.3.1 数组元素作函数实参 由于实参可以是表达式,而数组元素可以是表达式的组成部分,因此数组元素可以作为函数的实参,与用变量作实参一样,是单向传递,即“值传送”方式。 例 14.6 有两个数组a和b,各有10个元素,将它们对应地逐个相比(即a[0]与b[0]比,a[1]与b[1] ……)。如果a数组中的元素大于b数组中的相应元素的数目多于b数组中元素大于a数组中相应元素的数目(例如,a[i]b[i] 6次,b[i]a[i] 3次,其中i每次为不同的值),则认为a数组大于b数组,并分别统计出两个数组相应元素大于、等于、小于的次数。 #include stdio.h int main() { int compare(int x,int y); /* 函数声明 */ int a[10],b[10], i, n=0, m=0, k=0; //数据输入 printf(“Enter array a:\n”); for (i=0;i10;i++) scanf(“%d”, a[i]); printf(“\n”); printf (“Enter array b:\n”); for (i=0;i10;i++) scanf(“%d”, b[i]); printf(“\n”); //数据比较 for (i=0;i10;i++) { if(compare (a[i], b[i] )== 1) n++;   else if( compare (a[i], b[i] )==0) m++; else k++; } //数据输出 printf(a[i]b[i] %d times\n

文档评论(0)

laolao123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档