函数简单示例1一计算平均数(续) ●函数调用(function call)由函数名后跟放在括号中的实际参 数(argument)的列表组成 ●parameter称为形式参数,简称形参;argument称为实 际参数,简称实参 ·average(X,y)调用函数average,x,y作为实际参数被拷 贝给形式参数a和b ·实际参数不必非得是变量,也可以是具有兼容类型的表达式, 比如average(5.1,8.9)和average(x/2,y/3) ·函数调用语句放在我们需要执行该函数的功能或希望得到该 函数返回值的地方,比如打印x,y的平均值: printf("Average:%g\n",average(x,y)); ·如果需要在后面继续使用函数的返回值,必须将返回值放置 在某个变量中,否则返回值会被丢弃 avg average(x,y); 6/47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 函数简单示例 1 —— 计算平均数 (续) 函数调用 (function call) 由函数名后跟放在括号中的实际参 数 (argument) 的列表组成 parameter 称为形式参数,简称形参;argument 称为实 际参数,简称实参 average(x, y) 调用函数 average,x, y 作为实际参数被拷 贝给形式参数 a 和 b 实际参数不必非得是变量,也可以是具有兼容类型的表达式, 比如 average(5.1, 8.9) 和 average(x/2, y/3) 函数调用语句放在我们需要执行该函数的功能或希望得到该 函数返回值的地方,比如打印 x, y 的平均值: printf("Average: %g\n", average(x, y)); 如果需要在后面继续使用函数的返回值,必须将返回值放置 在某个变量中,否则返回值会被丢弃 avg = average(x, y); 6 / 47
函数简单示例1一计算平均数(续2) ●运行场景: Enter three numbers:3.5 9.6 10.2 Average of 3.5 and 9.6:6.55 Average of 9.6 and 10.2:9.9 Average of 3.5 and 10.2:6.85 ●代码: #include <stdio.h> double average(double a,double b){ return (a +b)/2; int main(void){ double x,y,Z; printf("Enter three numbers:") scanf ("%1f%1f%lf",&x,&y,&z); printf("Avg.of %g,%g:%gIn",x,y,average(x,y)); printf("Avg.of %g,%g:%gIn",y,z,average(y,Z)) printf ("Avg.of %g,%g:%gIn",x,z,average(x,z)); return 0; 7147
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 函数简单示例 1 —— 计算平均数 (续 2) 运行场景: Enter three numbers: 3.5 9.6 10.2 Average of 3.5 and 9.6: 6.55 Average of 9.6 and 10.2: 9.9 Average of 3.5 and 10.2: 6.85 代码: #include <stdio.h> double average(double a, double b) { return (a + b) / 2; } int main(void) { double x, y, z; printf("Enter three numbers: "); scanf("%l f%l f%l f ", &x, &y, &z); printf("Avg. of %g, %g: %g\n", x, y, average(x, y)); printf("Avg. of %g, %g: %g\n", y, z, average(y, z)); printf("Avg. of %g, %g: %g\n", x, z, average(x, z)); return 0; } 7 / 47
函数简单示例2一向下计数 ●如果函数的返回值没有价值,可以声明为无返回值,用Void标记, void是一种类型,表示无类型 void print_count(int n){ printf("T minus %d and counting In",n); ●调用实例: #include <stdio.h> void print_count(int n){ printf("T minus %d and counting In",n); int main(void){ int i; for(i=10;i>0;--1) print_count(i); return 0; 8/47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 函数简单示例 2 —— 向下计数 如果函数的返回值没有价值,可以声明为无返回值,用 void 标记, void 是一种类型,表示无类型 void print_count(int n) { printf("T minus %d and counting \n", n); } 调用实例: #include <stdio.h> void print_count(int n) { printf("T minus %d and counting \n", n); } int main(void) { int i; for (i = 10; i > 0; --i) print_count(i); return 0; } 8 / 47
函数简单示例3一 无参数函数 。如函数没有参数,可在括号内放置void表示不需要参数 void myprint(void){ printf("Hello World!In"); ·调用无参数函数只需要函数名加上一对空括号即可 #include <stdio.h> void myprint(void){ printf("Hello World!In"); } int main(void) myprint(); return 0; 9/47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 函数简单示例 3 —— 无参数函数 如函数没有参数,可在括号内放置 void 表示不需要参数 void myprint(void) { printf("Hello World ! \n"); } 调用无参数函数只需要函数名加上一对空括号即可 #include <stdio.h> void myprint(void) { printf("Hello World ! \n"); } int main(void) { myprint(); return 0; } 9 / 47
函数定义(Function Definitions) ●函数定义的一般形式 return-type function-name parameters { declarations statements ●return-type是函数所返回值的类型,return-type需遵循 下述规则: ·函数不能返回数组 ·返回类型指定为Void表示返回类型为空或无需返回值 。c89中省略返回类型则默认返回类型为int;C99则不许省 略返回类型 10/47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 函数定义 (Function Definitions) 函数定义的一般形式: return-type function-name ( parameters ) { declarations statements } return-type 是函数所返回值的类型,return-type 需遵循 下述规则: 函数不能返回数组 返回类型指定为 void 表示返回类型为空或无需返回值 C89 中省略返回类型则默认返回类型为 int;C99 则不许省 略返回类型 10 / 47