在C语言中,求阶乘可以通过循环或递归两种方法来实现。以下是使用循环方法的一个示例程序:
```c
include
int main() {
int n, index = 1;
unsigned long long factorial = 1;
printf("请输入一个正整数: ");
scanf("%d", &n);
for(index = n; index >= 1; index--) {
factorial *= index;
}
printf("%llu\n", factorial);
return 0;
}
```
在这个程序中,我们首先定义了一个整数变量`n`来存储用户输入的正整数,然后定义了一个循环变量`index`从`n`开始递减到1。在循环体内,我们将`factorial`变量乘以`index`,最终得到阶乘的结果。
递归方法的一个示例程序如下:
```c
include
unsigned long long 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的阶乘为: %llu\n", n, factorial(n));
return 0;
}
```
在这个程序中,我们定义了一个名为`factorial`的递归函数,该函数接受一个整数参数`n`,并返回一个`unsigned long long`类型的结果。如果`n`等于0或1,函数返回1;否则,函数返回`n`乘以`factorial(n - 1)`的结果。
需要注意的是,阶乘的结果会很快增长,可能会超出`unsigned long long`类型的范围。在实际应用中,可能需要使用大数库或其他方法来处理大整数阶乘计算。