c语言用非递归函数打印n的阶乘
时间: 2024-11-22 12:48:36 浏览: 15
C语言中的递归函数及其注意
在C语言中,你可以使用循环而非递归来计算并打印一个数n的阶乘。以下是使用for循环的一个示例:
```c
#include <stdio.h>
// 函数声明
unsigned long long factorial(int n);
int main() {
int n;
printf("请输入一个整数: ");
scanf("%d", &n);
if (n >= 0) { // 防止负数和0的情况
unsigned long long result = factorial(n);
printf("结果是: %llu\n", result);
} else {
printf("输入错误! 阶乘只对正整数有意义.\n");
}
return 0;
}
// 计算阶乘的非递归函数
unsigned long long factorial(int n) {
unsigned long long fact = 1; // 初始化阶乘为1
for (int i = 1; i <= n; ++i) {
fact *= i;
}
return fact;
}
```
在这个程序中,`factorial`函数通过循环将每个从1到n的整数相乘来计算阶乘。注意这里我们使用了`unsigned long long`数据类型来存储较大的阶乘值,因为阶乘的结果随着n增加会非常大。
阅读全文