③ 函数执行过程 在主程序中计算每个实际参数值 ©用实际参数值初始化形式参数 依次执行函数体的每个语句,直到遇见return"语句 或函数体结束 计算return后面的表达式的值,用表达式的值构造 一个临时变量 回到调用函数,用临时变量置换函数调用,继续主 程序的执行 司 LoCCS
函数执行过程 在主程序中计算每个实际参数值 用实际参数值初始化形式参数 依次执行函数体的每个语句,直到遇见return语句 或函数体结束 计算return后面的表达式的值,用表达式的值构造 一个临时变量 回到调用函数,用临时变量置换函数调用,继续主 程序的执行
函数执行过程 int p(int ) main X2) y(3) int max(int a,int b ) main x(2) y3) main() max a(2) b(3) n n2 int x,y; cin >x>>y; main x(2) y3) cout <max(x,y);] max a(2) b(3) nl n2 int p(int n n(2) S i int s =1,i; p if (n 0)return(0); main x(2) y3) for (i=1;i<=n;++i) max b(3) n2 s*=i;return(s); a(2) n1(2) p n3) S i int max(int a,int b) main x(2) y(3) int n1,n2; max n1=p(a);n2=p(b); a(2) b(3) n1(2) n2(6) return(n1>n2?n1:n2); main x(2) y3) LoCCS
函数执行过程 int p( int ); int max( int a, int b ); main() { int x, y; cin >> x >> y; cout << max(x, y);} int p( int n ) { int s =1, i; if (n < 0) return(0); for (i=1;i<=n; ++i) s*=i; return(s); } int max( int a, int b ) { int n1, n2; n1=p(a); n2=p(b); return (n1>n2? n1: n2); } main x(2) y(3) main x(2) y(3) max a(2) b(3) n1 n2 main x(2) y(3) max a(2) b(3) n1 n2 p n(2) s i main x(2) y(3) max a(2) b(3) n1(2) n2 p n(3) s i main x(2) y(3) max a(2) b(3) n1(2) n2(6) main x(2) y(3)
图 第6章过程封装一一函数 国 函数 ■重载函数 自己编写函数 函数模板 函数的使用 ■变量的作用域 ©数组作为参数 ■变量的存储类别 带默认值的函数 ■递归函数 内联函数 ■基于递归的算法 司 LoCCS
第6章 过程封装--函数 函数 自己编写函数 函数的使用 数组作为参数 带默认值的函数 内联函数
图 数组作为函数的参数 ©设计一函数,统计10位同学的平均成绩 ©设计考虑:如何传递参数 ·参数是10位同学的考试成绩,可以用10个整型数来表示。 所以有10个整型的形式参数 ·一组同类数据可以用一个数组来描述,所以参数也可以 是一个10个元素的整型数组 ·第二种方法更加简练 ·返回值是平均成绩 LoCCS
数组作为函数的参数 设计一函数,统计10位同学的平均成绩 设计考虑:如何传递参数 • 参数是10位同学的考试成绩,可以用10个整型数来表示。 所以有10个整型的形式参数 • 一组同类数据可以用一个数组来描述,所以参数也可以 是一个10个元素的整型数组 • 第二种方法更加简练 • 返回值是平均成绩
③ 统计函数的实现 int average(int array [10]) int i,sum =0; for(i=0;i<10;++i) sum +array [i]; return sum 10; 司 LoCCS
统计函数的实现 int average(int array[10]) { int i, sum = 0; for (i = 0; i < 10; ++i) sum += array[i]; return sum / 10; }