函数的递归调用实例

版权声明:本文为博主原创文章,未经博主允许不得转载。 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塔问题。

说明:

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

猜你喜欢

转载自blog.csdn.net/milustarting/article/details/71155212