程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501
第7章函数 7.1函数概述 7.2函数的定义和使用 7.3嵌套调用与递归调用 7.4变量与函数 7.5随机数函数
第7章 函数 7.1 函数概述 7.2 函数的定义和使用 7.3 嵌套调用与递归调用 7.4 变量与函数 7.5 随机数函数
7.3函数的嵌套与递归调用一P124 7.3.1函数的嵌套调用一P124 C规定:函数不能嵌套定义,但可以嵌套调用 main() a函数 b函数 ② ③ ④ 调用函数a 调用函数b ⑤ ⑨ ⑧ ① ⑤ main结束 函数嵌套调用的示意图 3
7.3 函数的嵌套与递归调用—P124 C规定:函数不能嵌套定义, 7.3.1 函数的嵌套调用—P124 但可以嵌套调用 main( ) 调用函数a main结束 a函数 b函数 调用函数b ——函数嵌套调用的示意图 3
【例75】已知组合数C:= m! m-n!' 对于任意m、n,求C的值。 ①#include<stdio.h> ② double fac(intk)∥fac0函数求k阶 int main() ② @ int i; ③ intm,n; double ④ double t; for (i=1,f=1;i<=k;i++) ⑤ scanf("%d%d",&m,&n); ecmn(m,n);/调用求组合数的函数cmn0 ⑦ printf("C(%d,%d)=%lfn",m,n,t); ⑧ return 0; double drn(int m,int n) ⑨ double res, res=fac(m)/(fac(n)fac(m-n)); main() cmn函数 fac函数 return res 调用函数cmm了 调用函数fac 输出 结束
① #include <stdio.h> ② double fac(int k) // fac()函数求k阶乘 ③ { ④ int i; ⑤ double f; ⑥ for (i=1,f=1;i<=k;i++) ⑦ f=f*i; ⑧ return(f); ⑨ } ⑩ double cmn(int m,int n) ⑪ { ⑫ double res; ⑬ res=fac(m)/(fac(n)*fac(m-n)); ⑭ return res; } main( ) 调用函数cmn 输出 结束 cmn函数 fac函数 调用函数fac ① int main() ② { ③ int m,n; ④ double t; ⑤ scanf("%d%d",&m,&n); ⑥ t=cmn(m,n); //调用求组合数的函数cmn() ⑦ printf("C(%d,%d)=%lf\n",m,n,t); ⑧ return 0; ⑨ }
使用C语言函数注意: 1)在C语言中,所有函数定义都是平行的 -即在C程序中,函数不允许嵌套定义。 2)C语言允许函数嵌套调用:函数的嵌套调用是指 一个函数在执行过程中调用一个函数(自己或其 它函数),被调用函数在执行过程中又调用一个 函数0
使用C语言函数注意: 1)在C语言中,所有函数定义都是平行的 -即在C程序中,函数不允许嵌套定义。 2)C语言允许函数嵌套调用:函数的嵌套调用是指 一个函数在执行过程中调用一个函数(自己或其 它函数),被调用函数在执行过程中又调用一个 函数