c函数学习课件.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数的嵌套调用和递归调用 void fun2() { cout<<It is in fun2().<<endl; fun1(); cout<<It is back in fun2().<<endl; } void fun3() { cout<<It is in fun3().<<endl; } 31 天津工程师范学院 函数的嵌套调用和递归调用 ? 函数的递归调用 ? 递归调用是指在一个函数体中直接或间接调用自己。 main D main A D 32 天津工程师范学院 递归调用 ? 采用递归调用可以解决的问题是有限的,这些问题具 有以下特点: ? 能够将原有问题分解为一个新问题,而这个新问题 又要用原有问题的解决方法。按这一特点将问题分 解下去,每次出现的新问题都是原有问题的简化的 子问题;(规模变小,形式不变) ? 最终分解出来的新问题是具有已知解的问题。(有 限) 33 天津工程师范学院 递归 ? 从键盘输入一个正整数,编程求出该函数的阶乘,要 求使用递归调用的方法。 ? 0 ! =1 ? 1 ! =1 ? 2 ! =1*2 ? 3 ! =1*2*3 ? n ! =1*2*3*……*n =1!*2 =2!*3 =(n-1)!*n 1 n=0,1 fact(n)= fact(n-1)*n n>1 34 天津工程师范学院 递归 long fact(int n){ int c; if(n<=1){ return 1; else return fact(n-1)*n; } void main(){ int n; cin>>n; cout<<fact(n)<<endl; } 1 n=0,1 fact(n)= fact(n-1)*n n>1 主函数 void main( ) int fact(int n) fact(n) ? 5 ? ? 4 35 天津工程师范学院 主函数 void main( ) int fact(int i) fact(n) 递归 ? 5 ? ? 4 long fact(int n){ int c; if(n<=1){ return 1; else return fact(n-1)*n; } void main(){ int n; cin>>n; cout<<fact(n)<<endl; } main fact(n) 输出 fact(n) return fact(n-1)*n fact(n-1) return fact(n-2)*(n-1) fact(1) return 1 … 36 天津工程师范学院 重载函数 ? 请编写绝对值函数,函数返回参数的绝对值。 ? 1 、参数为 int 类型 ? 2 、参数为 double 类型 ? 3 、参数为 long 类型 int abs(int i){ return (i>0?i,-i); } double abs1(double i){ return (i>0?i,-i); } long abs2(long i){ return (i>0?i,-i); } void main(){ cout<<abs(-10); cout<<abs1(-2.5); …… } 37 天津工程师范学院 重载函数 ? 为什么要重载函数 ? 具有相同功能的函数如果不能用一个函数名,会给 编写和使用带来不变。 ? C++ 运行多个函数具有 相同的函数名 ,但其中任意两 个函数的 参数个数 、 参数类型 、 类型顺序 不能完全相 同。 38 天津工程师范学院 重载函数 int fun( ); int fun(int ); int fun( double); int fun(int , double); int fun( double, int ); float fun( int ); int a=1;double d=2.5; cout<<fun(d); cout<<fun(d,a); cout<<fun(a,d); cout<<fun(a); 39 天津工程师范学院 重载函数 ? 重载和函数的默认参数可能会冲突,如果有冲突,不 能同时使用。 int fun(int ); int fun(int a=10 , double d=100); int main(){ cout<<fun(1); } 40 天津工程师范学院 重载函数 int max(int,int),max(int,int,int),max(int,int,int,int); void main() { cout<<max(57,69)<<endl; cout<<max(60,59,61)<<endl; cout<<max(

文档评论(0)

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

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

1亿VIP精品文档

相关文档