第7章 用函数实现模块化程序设计 ppt.Convertor(3)

2019-04-05 16:41

scanf(\ max=max4(a,b,c,d);

printf(\ return 0; }

主函数

调用后肯定是4个数中最大者 输出最大者

int max4(int a,int b,int c,int d) { int max2(int a,int b); int m;

m=max2(a,b);

m=max2(m,c); m=max2(m,d); return(m); }

max4函数

对max2 函数声明

int max4(int a,int b,int c,int d) { int max2(int a,int b); int m;

m=max2(a,b);

m=max2(m,c); m=max2(m,d); return(m); }

max4函数 a,b中较大者 a,b,c中较大者 a,b,c,d中最大者

int max4(int a,int b,int c,int d) { int max2(int a,int b); int m;

m=max2(a,b);

m=max2(m,c); m=max2(m,d); return(m); }

max4函数

int max2(int a,int b) { if(a>=b)

return a; else

return b;

}

max2函数

找a,b中较大者

int max4(int a,int b,int c,int d) { int max2(int a,int b); int m;

m=max2(a,b);

m=max2(m,c); m=max2(m,d); return(m); }

max4函数

int max2(int a,int b) { if(a>=b)

return a; else

return b; }

max2函数

return(a>b?a:b);

int max4(int a,int b,int c,int d) { int max2(int a,int b); int m;

m=max2(a,b);

m=max2(m,c); m=max2(m,d); return(m); }

max4函数

int max2(int a,int b) { return(a>b?a:b); int max4(int a,int b,int c,int d) { int max2(int a,int b); int m;

m=max2(a,b);

m=max2(m,c); m=max2(m,d); return(m); }

max4函数

m=max2(max2(a,b),c);

int max2(int a,int b) { return(a>b?a:b); int max4(int a,int b,int c,int d) { int max2(int a,int b); int m;

} } m=max2(a,b);

m=max2(m,c); m=max2(m,d); return(m); }

max4函数

m=max2(max2(max2(a,b),c),d);

int max2(int a,int b) { return(a>b?a:b); } int max4(int a,int b,int c,int d) { int max2(int a,int b); int m;

m=max2(a,b);

m=max2(m,c); m=max2(m,d); return(m); }

max4函数

ruturn max2(max2(max2(a,b),c),d);

int max2(int a,int b) { return(a>b?a:b); } int max4(int a,int b,int c,int d) { int max2(int a,int b);

ruturn max2(max2(max2(a,b),c),d); }

int max2(int a,int b) { return(a>b?a:b); } #include int main() { ……

max=max4(a,b,c,d); …… }

7.6 函数的递归调用

在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。 C语言的特点之一就在于允许函数的递归调用。 f2函数

调用f1函数

7.6 函数的递归调用 int f(int x) {

int y,z;

z=f(y); return (2*z); }

f函数

调用f函数 f1函数

调用f2函数

应使用if语句控制结束调用 直接调用本函数 间接调用本函数 7.6 函数的递归调用

例7.6 有5个学生坐在一起

问第5个学生多少岁?他说比第4个学生大2岁 问第4个学生岁数,他说比第3个学生大2岁 问第3个学生,又说比第2个学生大2岁 问第2个学生,说比第1个学生大2岁 最后问第1个学生,他说是10岁 请问第5个学生多大 7.6 函数的递归调用 解题思路:

要求第5个年龄,就必须先知道第4个年龄 要求第4个年龄必须先知道第3个年龄 第3个年龄又取决于第2个年龄 第2个年龄取决于第1个年龄

每个学生年龄都比其前1个学生的年龄大2 7.6 函数的递归调用 解题思路: age(5)=age(4)+2 age(4)=age(3)+2 age(3)=age(2)+2 age(2)=age(1)+2 age(1)=10 age(5) =age(4)+2 age(4) =age(3)+2 age(3) =age(2)+2 age(2) =age(1)+2 age(1) =10 age(2) =12 age(3) =14

age(4) =16 age(5) =18 回溯阶段 递推阶段 age(5) =age(4)+2 age(4) =age(3)+2 age(3) =age(2)+2 age(2) =age(1)+2 age(1) =10 age(2) =12 age(3) =14 age(4) =16 age(5) =18 回溯阶段 递推阶段

结束递归的条件 #include int main()

{ int age(int n);

printf(\ return 0; }

int age(int n)

{ int c; if(n==1) c=10;

else c=age(n-1)+2; return(c); }

age(5)

输出age(5) main

c=age(4)+2 age函数


第7章 用函数实现模块化程序设计 ppt.Convertor(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1080P工程手册2013 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: