1、第八章 函数的定义与使用在编程时,如果程序的代码量很大,我们可以按照功能将程序分块:提取出相应的程序代码,加入必要成分形成一个主程序的子程序,这个子程序通常又就被称为函数。我们在主程序里可以像调用其它已知函数一样,调用该子程序。这样做,既可以减少重复利用该功能书写代码的工作量,方便多次调用,又可以为程序出错时查找错误带来便利。对于规模很大的程序而言,程序按模块设计,既便于程序员间的分工合作,又有利于程序后期的调试和维护,是软件开发设计中的一个很重要的设计思想。8.1、函数的定义函数的定义就是按照需要,将原来主程序中的部分代码提取出来,补充出一些辅助内容,使之形成一个子程序的过程。函数定义的一般
2、形式:类型标识符 函数名()声明部分语句说明:1、类型表示符可以是任何一种数据类型,标明函数返回值的数据类型,也可以直接放置“void”标识符,标明函数不需要返回任何数据类型的函数值。2、函数名就是为这段代码给子程序定义的名字,函数名后边的括号内可以放置函数被调用时所需的别要参数。3、函数的主体部分,就是函数所要完成的功能,以及必要的变量定义等程序必备的内容。4、函数也可以作为一个主体调用其它函数,一个函数调用另外一个函数称为嵌套,一个函数调用自己(形式上是自己,执行的初始参数会有所不同)称为递归。示例 1、求最大值函数int max(int a,int b)if(ab)return a;el
3、se return b;功能:求两个数中的最大值的函数,return 向调用函数返回最大值。示例 2、在函数中求 1+2+3+n 的和,并直接输出。Void sum(int n)int i=0,s=0;1for(i=1;ib)return a;else return b;int max4()int a,b,c,d,x1,x2;scanf(“%d%d%d%d“,x1=max1(a,b);x2=max1(c,d);printf(“max4=%dn“,max1(x1,x2);示例 4*、求 1+2+3+n 的和,递归实现。Int sum(int n)int s;if(n=1) s=1;else s=
4、sum(n-1)+n;return s;8.2、函数的引用实例 8.1、求四个数中的最大值。#include #include int max1(int a,int b)if(ab)return a;else return b;int max4()int a,b,c,d,x1,x2;2scanf(“%d%d%d%d“,x1=max1(a,b);x2=max1(c,d);printf(“max4=%dn“,max1(x1,x2); main()max4();system(“pause“);实例 8.2、求组合数 C(n,m)=n!/(m!)*(n-m)!)#include #includeint
5、 p(int k)int i,jch=1;for(i=2;i#includevoid hanuo(int n,char a,char b,char c)if(n=1) printf(“1-%c-%cn“,a,c); 3else hanuo(n-1,a,c,b);printf(“%d-%c-%cn“,n,a,c);hanuo(n-1,b,a,c);main()int n;printf(“Input n:“);scanf(“%d“, hanuo(n,A,B,C);system(“pause“);知识扩展:本章内容,同学们可以参考参考书目 1 的第八章。除了本章所述内容外,参数传递、全局变量和局部变量的等相关内容,同学们也可以在本章找到,这些内容对于熟练使用函数都是非常有帮助的内容。上机实践:练习实例 8.1、8.2,8.3 选作。