自创函数
当库函数满足不了我们的时候,我们需要自己定义函数。
自定义函数的一般形式:
注意:数据类型说明省略,默认是int类型函数。
函数调用
当我们需要用到自定义函数时,就可以将我们定义的函数调用过来。
函数调用的格式为:函数名(【参数】)---参数可以省略
函数的有参与无参
有参函数更为灵活,输入的数据可以随参数的改变而改变。
函数的形参与实参
形参:在定义函数名和函数体的时候所使用的参数,目的是用来接收调用该函数是传入的参数。
实参:在调用时传递该函数的参数。
形参只有在函数内部有效,而实参在进行调用时,必须有确定的值(将值传给形参,要先用赋值等办法让实参获得确切的值)。
形参与实参在数量,类型,顺序上应该严格一致。
递归函数
定义:一个函数在它的函数体内调用它自身。反复调用其自身,每调用一次就进入新的一层。
注意:
1.递归函数必须有结束条件。
2.每一级函数调用时都有自己的变量。
3.递归函数调用前的语句和被调用的语句具有相同的执行顺序。
4.调用后的语句执行顺序和被调用的函数顺序相反。
习题训练
例题一
使用函数判断完全平方数。定义一个完全平方数is(n),当n为完全平方数时返回1,否则返回0。
例题二
使用函数求最大公约数。定义函数gcd(int m,int n),计算m和n的最大公约数。
下图分别使用了if 和while 语句
(纠正一下 两处的return n改为return m)
例三
使用函数判断素数。定义函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
例四
使用函数求1到n之和:输入一个正整数n,输出1~n之和。
(此题为带有参数的函数)
例题五
使用函数找最大值:输入两个数,输出其中最大的数。
注意:在没有运用c语言的库函数,而是自己设置的函数时,函数的名字不要与C语言的重复。
如下图的错误:
(上图的max函数与<math.h>中的max(a,b)重复)