刚刚学习了C语言的函数,发现一道挺有意思的题目,编了个小代码。
代码
#include<stdio.h>
int fact(int n);
int main()
{
int n, r;
printf("请输入要求阶乘的数:");
scanf("%d", &n);
if (n < 0)
printf("\nerror");//n不能为负数
else
{
r = fact(n);//引用函数fact
printf("%d的阶乘是%d", n,r);
}
return 0;
}
int fact(int n)//递归
{
int f;
if (n == 0 || n == 1)//0和1的阶乘为1
f = 1;
else
f = fact(n - 1) * n;//一直循环相乘直到n为1
return f;//返回值返回到r
}