程序设计基础 第7章 函数 1/15
第7章 函 数 程序设计基础 1/15
本章知识点 7.1函数概述 7.2函数的定义和使用 7.3嵌套调用与递归调用 7.4变量与函数 7.5随机数函数 恩 2/15
本章知识点 7.1 函数概述 7.2 函数的定义和使用 7.3 嵌套调用与递归调用 7.4 变量与函数 7.5 随机数函数 2/15
嵌套调用与递归调用 嵌套调用 C规定:函数定义不可嵌套,但可以嵌套调用函数,即在 调用一个函数的过程中,又调用另一个函数。 main() main() a函数 b函数 {. a0; ② ④ 调用函数a 调用函数b ⑤ ⑨ void a() 结束 b0: 函数嵌套调用的示意图 void b() } 3/15
嵌套调用与递归调用 C规定:函数定义不可嵌套, 嵌套调用 但可以嵌套调用函数,即在 main( ) 调用函数a 结束 a函数 b函数 调用函数b ——函数嵌套调用的示意图 调用一个函数的过程中,又调用另一个函数。 main() { . a(); . } void a() { b(); } void b() {.} 3/15
对于任意m、n,求Cm” ml 已经组合数公式:Cm= nl(m-n)! (1)用函数cmn(m,n)求组合数: (2)用函数fac(k)求k的阶乘。 main() { main() cmn函数 ac函数 cmnO月 ① ④ 调用cmn函数 调用fac函数 ⑤ double cmn() ⑨ ⑥ 结束 fac(); } double fac() 函数嵌套调用的示意图 } 恩 4/15
对于任意m、n,求Cm n (1)用函数cmn(m,n)求组合数; (2)用函数fac(k)求k的阶乘。 已经组合数公式: main( ) 调用cmn函数 结束 cmn函数 fac函数 调用fac函数 ——函数嵌套调用的示意图 main() { . cmn(); . } double cmn() { fac(); } double fac() {.} !( )! ! n m n m C n m − = 4/15
m 求Cmn的程序 m nl.(m-n)! #include<stdio.h≥ double fac(int k); ∥声明fac0函数求k的阶乘 double cmn(intm,intn);∥声明cmn)函数求组合数 int main() int m,n; double t; printf("Input m n:"); scanf("%d%d",&m,&n); t=cmn(m,n); ∥调用求组合数的函数cmn(0 printf("C(%d,%d)=%lfn",m,n,t); return 0; 猖 5/15
求Cm n 的程序 #include <stdio.h> double fac(int k); // 声明fac()函数求k的阶乘 double cmn(int m,int n); // 声明cmn()函数求组合数 int main() { int m,n; double t; printf("Input m n:"); scanf("%d%d",&m,&n); t=cmn(m,n); // 调用求组合数的函数cmn() printf("C(%d,%d)=%lf\n",m,n,t); return 0; } !( )! ! n m n m C n m − = 5/15