模块设计 函数的返回值 例函数返回值类型转换 mainO int max(float x,float y) { int max(float float); float z; float a,b; z-x>y?x:y; int c, return(z); scanf("f,%f",&a,&b); c=max(a,b); printf("Max is %d n",c); 目标要求 讲课提纲 讲课内容 课后作业 )CH 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 例 函数返回值类型转换 函数的返回值 main() { int max(float,float); float a,b; int c; scanf("%f,%f",&a,&b); c=max(a,b); printf("Max is %d\n",c); } int max(float x, float y) { float z; z=x>y?x:y; return(z); } 模块设计
模块设计 从键盘输入两个正整数m与(m≥n),求 m! C 的值。 n(m-n)! 目标要求 讲课提纲 (讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 模块设计 ( ), ! !( )! m n m n m n m n = − n m 从键盘输入两个正整数 与 求 C 的值
模块设计 #include <stdio.h> int fac(intk)/*计算阶乘值的函数*/ int s,i; s=1; for(i=1;i<=k;i=i+1)s=s*i; return(s); main() { int m,n; int fac(int); scanf("%d,%d",&m,&n); if(m>=n)printf("%d\n",fac(m)/(fac(n)*fac(m-n))); else printf("m<n!n");
目标要求 讲课提纲 讲课内容 课后作业 退出 模块设计 #include <stdio.h> int fac(int k) /*计算阶乘值的函数*/ { int s,i; s=1; for(i=1;i<=k;i=i+1) s=s*i; return(s); } main() { int m,n; int fac(int); scanf("%d,%d",&m,&n); if(m>=n) printf("%d\n",fac(m)/(fac(n)*fac(m-n))); else printf("m<n!\n"); }
模块设计 函数调用的一般形式 函数声明: 般形式: 函数类型 函数名(形参类型 [形参名]) > 作用:告诉编译系统函数类型、参数个数及类型,以 便检验 > 在主调函数之前,需对被调函数进行声明 >以下情况可以不用函数声明 (1)当被调用函数的函数定义出现在主调函数之前时。 (2)如果在所有函数定义之前,在函数外部(例如文件或程序开始 处)预先对各个函数进行了声明,则在主调函数中可以省去对 被调用函数的说明
目标要求 讲课提纲 讲课内容 课后作业 退出 模块设计 ➢ 函数声明: 一般形式: 函数类型 函数名(形参类型 [形参名],.) ➢ 作用:告诉编译系统函数类型、参数个数及类型,以 便检验 ➢ 在主调函数之前,需对被调函数进行声明 ➢ 以下情况可以不用函数声明 (1) 当被调用函数的函数定义出现在主调函数之前时。 (2) 如果在所有函数定义之前,在函数外部(例如文件或程序开始 处)预先对各个函数进行了声明,则在主调函数中可以省去对 被调用函数的说明。 函数调用的一般形式
模块设计 函数调用的一般形式 >调用形式: 函数名(实参表): >说明: 无参函数调用时,圆括号不可省略 实参与形参个数相等,类型一致,按顺序一一对应 函数定义与函数调用的区别: 函数的定义中有“类型标识符”而函数的调用中没有。 函数的定义中的参数为“形参”,而函数的调用中参数为 “实参”。 函数的定义后没有”";”,而函数的调用中有“;”(函数 作为实参外)。 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 ➢调用形式: 函数名(实参表); ➢说明: ▪无参函数调用时,圆括号不可省略 ▪实参与形参个数相等,类型一致,按顺序一一对应 ▪函数定义与函数调用的区别: ▪函数的定义中有“类型标识符”而函数的调用中没有。 ▪函数的定义中的参数为“形参”,而函数的调用中参数为 “实参” 。 ▪函数的定义后没有“;”,而函数的调用中有“;”(函数 作为实参外)。 函数调用的一般形式 模块设计