用c语言写一段程序,要求从键盘输入一个数,用递归调用函数求出这个数的阶乘
时间: 2024-02-13 16:01:53 浏览: 21
好的,可以使用下面的 C 代码实现:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
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;
}
```
这个函数通过递归调用自身来计算输入数字的阶乘,当输入数字为 0 时直接返回 1,否则返回输入数字乘以输入数字减 1 的阶乘。最后输出计算结果。
相关问题
用递归函数实现一个数的阶乘 c语言
以下是用递归函数实现一个数的阶乘的 C 语言代码:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0 || 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` 并返回 `n` 的阶乘。如果 `n` 是 0 或 1,函数直接返回 1。否则,函数递归调用自身来计算 `n-1` 的阶乘,并将结果乘以 `n`,最终得到 `n` 的阶乘。
在 `main` 函数中,我们首先从用户那里输入一个正整数 `n`,然后调用 `factorial` 函数来计算 `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` 的阶乘。