1、函数的概述
函数(Function)是一段可以重复使用的代码,除了C语言自带的函数,我们也可以编写自己的函数,称为自定义函数。
函数三要素: ①返回值:由关键字 return 进行返回;
②函数名;由数字、字母、下划线组成,不能以数字开头;
③函数参数。放在括号 () 内,每一个参数之间用逗号隔开,调用函数时,在内存中开辟一个新的空间,调用结束时,将空间释放。
函数返回值有固定的数据类型(int、char、float等),用来接收返回值的变量类型要一致。
2、递归函数
一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。
注意:递归函数的定义,不应出现无终止的递归调用。而应定义为有限次数、有终止的递归调用函数。 对于一个问题,只要能够知道递归定义式,及边界条件(即递归终止的条件),就可以编写一个递归函数。
分享两个典型例题:(1)n的阶乘 (2)求斐波那契数列中第n个数的值
#include <stdio.h>
// 阶乘函数,求n的阶乘
int func(int n)
{ if (n == 1)
return 1;
int res = n * func(n-1);
return res;
}
/*求斐波那契数列中第n个数的值:
以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
*/
int feibo(int n)
{
if (n == 0 || n == 1)
return n;
int res = feibo(n-1) + feibo(n-2);
return res;
}
int main()
{
int n;
scanf ("%d", &n);
int j = func(n);
printf ("n的阶乘为:%d\n", j);
int b = feibo(n);
printf ("斐波那契数列的第n个数为:%d\n", b);
return 0;
}