## 自定义函数的调用
这是我开通的第一个博客哈,想在这里记录一下我每天的学习成果,希望能和大家一起进步。
C语言求n! ,运用自定义函数和递归调用实现。
#include <stdio.h>
int main ()
{
int factorial(int number);
int number,temp;
printf("Please input the number:");
scanf("%d",&number);
temp=factorial(number);
if(number>=0)
{
printf("%d!=%d",number,temp);
}
return 0;
}
int factorial(int number)
{
int temp;
if(number<0)
{
printf("The number is error,please input again.");
}
else if(number==0||number==1)
{
temp=1;
}
else
{
temp=factorial(number-1)*number;
}
return temp;
}
编译结果运行如下:
因为上述代码我定义的是int整型,所以如果number无限大,会超过int的范围(int数据范围为-2147483648~2147483647),如下:
其实这串代码最核心的地方在于:
temp=factorial(number-1)*number;
在调用factorial()函数的过程中,又调用了factorial()函数,这是直接递归调用;当然还有间接递归调用,比如在调用f1()函数的过程中,会调用到f2()函数,而在f2()函数调用过程中又会调用到f1()函数。