函数的递归调用实例

来源:互联网 发布:正交矩阵的性质 编辑:程序博客网 时间:2024/05/22 12:52

实例:


#include <stdio.h>


void main()


{
float fac(int n);
int n;
float y;
printf("input an integer number :");
scanf("%d",&n);
y = fac(n);
printf("%d!=%10.0f\n",n,y);
}
float fac(int n)
{
float f;
if( n < 0 )
{
printf("n<0,error!");
}
else if(n==0||n==1)
{
f=1;
}
else 
f = fac(n-1) * n;           //在fac函数再次调用fac,相当于循环,当程序执行到这一步的时候,调用函数计算fac(n-1),又将重新执行一次函数定义的语句
return f;                                 //此处是直接给float fac(int n)函数返回一个值,而不是再次调用函数
}


c语言中一般函数的递归调用是不常用的,是比较低级的算法,但有些问题用递归法简单,读者可以去查一查,hanoi塔问题。

说明:

   此程序中应注意函数后面的定义部分有注释的那两行,为之重要,不理解可以在下评论

0 0
原创粉丝点击