第六章函数 函数的基本使用 函数的嵌套调用 函数的递归调用 变量存储特征 宏
第 六 章 函 数 函数的基本使用 函数的嵌套调用 函数的递归调用 变量存储特征 宏
函数的概念 n!+m! for(=1;i<=n;i++) f=f* scanf(%d%d%d",&m, &n, &k) fk=1: for(=1;i<=k;i++) fk= fk*i fm=1; for(=1;i<=m;+ 反复使用的代码段 fm fm for(=1;i<=n;++) fn fn* printf(%f\n", fm/(fn+fk)
函数的概念 k! n!+m! f=1; for(i=1; i<=n; i++) f=f*i; scanf("%d%d%d", &m, &n, &k); fk=1; for(i=1; i<=k; i++) fk = fk*i; fm=1; for(i=1; i<=m; i++) fm = fm*i; fn=1; for(i=1; i<=n; i++) fn = fn*i; printf("%f\n", fm/(fn+fk)); 反复使用的代码段
include #f include void maino void maino int k. m n: int k. m. n float fk, fm fn float fk. fm fn float fact(int n) scanf("%d%d%d",&m,&n,&k) scanf("%d%d%d",&m, &n, &k) fk=1: fm= fact(m) for(=1;i<=k;i++) in= fact(n fk= fk"i: fk= fact(k) fm=1: printf(%fn", fm/(fn+fk) for(=1;i<=m;++) fm fm*i float fact(int n) fn=1. for(i=1;i≤=n;i++) float f= 1 fn〓fn*i printf( %fin ", fm/(fn+fk) or(i=1;i<=n;i++) f=fi return f
# include void main() { int k, m, n; float fk, fm, fn; scanf("%d%d%d", &m, &n, &k); fk=1; for(i=1; i void main() { int k, m, n; float fk, fm, fn; float fact(int n); scanf("%d%d%d", &m, &n, &k); fm = fact(m); fn = fact(n); fk = fact(k); printf("%f\n", fm/(fn+fk)); } float fact(int n) { int i; float f=1; for(i=1; i<=n; i++) f=f*i; return f; }
#f include void maino main int k. m. n float fk. fm fn float fact(int n ); scanf fact printf scanf(%d%d%d",&m,&n,&k) 库函数自定义函数库函数 fm= fact(m) fn= fact(n 调用 fk= fact(k) printf("%f\n", fm/(fn +fk main主调函数 float fact(int n 定义 i int i; float仁=1 for(=1;i<≡n;i++) fact被调用函数 f=fi return f
# include void main() { int k, m, n; float fk, fm, fn; float fact(int n); scanf("%d%d%d", &m, &n, &k); fm = fact(m); fn = fact(n); fk = fact(k); printf("%f\n", fm/(fn+fk)); } float fact(int n) { int i; float f=1; for(i=1; i<=n; i++) f=f*i; return f; } main scanf fact printf 库函数 自定义函数 库函数 main 主调函数 fact 被调用函数 调用 定义
函数的概念 库函数 scanf( printf()sqrt0 功能独立,反复使用的代码段 计算阶乘fact0 模块化编程 学生成绩档案管理软件 成绩输入成绩修改成绩统计成绩打印
函数的概念 库函数 scanf() printf() sqrt() 功能独立,反复使用的代码段 计算阶乘 fact() 模块化编程 学生成绩档案管理软件 ┌─────┬─┴──┬────┐ 成绩输入 成绩修改 成绩统计 成绩打印
#f include void maino printf( 1 INPUT 2.EDIT 3 PROCESS 4. PRINT 5.EXITn); while(1) printf("please input 1-5: scanf(%d", &in) if (in==5) break switch(in case 1: input(; break; case 2: edit(; break; case 3: process(); break; case 4: print(); break;
# include void main() { int in; printf("1. INPUT 2.EDIT 3. PROCESS 4.PRINT 5.EXIT\n"); while(1){ printf("please input 1-5:"); scanf("%d",&in); if (in==5) break; switch(in) { case 1: input( ); break; case 2: edit( ); break; case 3: process( ); break; case 4: print( ); break; } } }
void input()/*成绩输入*/ void edit()/*成绩修改* 4个函数的定义 void process()/成绩统计* void print()/*成绩打印
void input( ) /* .成绩输入 */ { ............... } void edit( ) /* 成绩修改 */ { .............. } 4个函数的定义 void process( ) /* 成绩统计 */ { ............... } void print( ) /* 成绩打印 */ { ............... }
函数的定义和调用 void maino float fact(int n) i int i int ml float f= 1 float fk, fm, fn float fact(int n) for(i=1;i=n;计+) f=f* fm =lfact(6) return f 调用 定义
函数的定义和调用 void main() { int m, n; float fk, fm, fn; float fact(int n); fm = fact(6); …… } 调用 定义 float fact(int n) { int i; float f=1; for(i=1; i<=n; i++) f=f*i; return f; }
函数的定义和调用 void main int m. n float fk. fm fn float fact(int n); fm=fac6;调用 函数名(实际参数表) 参数传递 float fact(int n)定义 float f= 1 返回值类型函数名(形式参数表) for(i=1; K<=n; 1++) return f
函数的定义和调用 返回值类型 函数名(形式参数表) { …… } void main() { int m, n; float fk, fm, fn; float fact(int n); fm = fact(6); …… } float fact(int n) { int i; float f=1; for(i=1; i<=n; i++) f=f*i; return f; } 调用 定义 函数名(实际参数表) 参数传递
函数的参数 void maino 函数名(实际参数表) nt m n 返回值类型函数名(形式参数表) float fk. fm fn float fact(int n) fm= fact(6 、函数的参数 float fact(int n) 形式参数 类型1参数1,类型2参数2,…)型n参数n float f=1 定义函数时需要知道的信息 for(=1;i形参
返回值类型 函数名(形式参数表) { …… } void main() { int m, n; float fk, fm, fn; float fact(int n); fm = fact(6); …… } float fact(int n) { int i; float f=1; for(i=1; i 形参 函数的参数 函数名(实际参数表)