用C语言写一个递归求n的阶乘的函数,并对异常数据设计枚举类型的返回数据
时间: 2023-03-09 15:03:31 浏览: 91
可以这样写:int rec_factorial(int n, int result) {
// 边界条件: n=0 时,返回 result
if (n == 0) {
return result;
}
// 枚举类型的返回数据
if (n < 0) {
return -1;
}
// 递归调用:n 的阶乘 = n * (n-1) 的阶乘
return rec_factorial(n-1, result * n);
}
相关问题
帮我用c语言写一个递归求阶乘的程序
好的,以下是用 C 语言实现的递归求阶乘的程序:
```c
#include <stdio.h>
int factorial(int n){
if(n <= 1){
return 1;
}else{
return n * factorial(n-1);
}
}
int main(){
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("%d的阶乘为:%d\n", n, factorial(n));
return 0;
}
```
在该程序中,我们定义了一个 `factorial` 函数,通过递归的方式求出了传入参数 `n` 的阶乘。在 `main` 函数中,我们通过 `scanf` 函数获取了用户输入的正整数 `n`,然后调用 `factorial` 函数计算并输出了 `n` 的阶乘。
用c语言写一个函数求n的阶乘,int fact(int x)
下面是用C语言写的求n的阶乘的函数:
```c
int fact(int x)
{
if (x == 0) {
return 1;
} else {
return x * fact(x - 1);
}
}
```
该函数实现了递归的方式对n的阶乘进行计算。当x等于0时,返回1;否则,返回x乘以x-1的阶乘。