C语言入门之函数(3)

文章作者 100test 发表时间 2007:03:10 17:42:29
来源 100Test.Com百考试题网


函数的递归调用

   一个函数在它的函数体内调用它自身称为递归调用。 这种函数称为递归函数。C语言允许函数的递归调用。在递归调用中, 主调函数又是被调函数。执行递归函数将反复调用其自身。 每调用一次就进入新的一层。例如有函数f如下:

int f (int x)
{
int y.
z=f(y).
return z.
}

   这个函数是一个递归函数。 但是运行该函数将无休止地调用其自身,这当然是不正确的。为了防止递归调用无终止地进行, 必须在函数内有终止递归调用的手段。常用的办法是加条件判断, 满足某种条件后就不再作递归调用,然后逐层返回。 下面举例说明递归调用的执行过程。 来源:www.examda.com 

   [例5.9]用递归法计算n!用递归法计算n!可用下述公式表示:

n!=1 (n=0,1)
n×(n-1)! (n>1)
按公式可编程如下:
long ff(int n)
{
long f.
if(n<0) printf("n<0,input error").
else if(n==0||n==1) f=1.
else f=ff(n-1)*n.
return(f).
}
main()
{
int n.
long y.
printf("\ninput a inteager number:\n").
scanf("%d",&.n).
y=ff(n).
printf("%d!=%ld",n,y).
}
long ff(int n)
{ ……
else f=ff(n-1)*n.
……
}
main()
{ ……
y=ff(n).
……
}

相关文章


C语言入门之函数(5)
C语言入门之函数(4)
C语言入门之函数(3)
C语言入门之函数(1)
C语言入门之函数(2)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛