版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/milustarting/article/details/71155212
实例:
#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塔问题。
说明:
此程序中应注意函数后面的定义部分有注释的那两行,为之重要,不理解可以在下评论