用c语言编程求 n!,要求n从键盘输入。
时间: 2024-12-18 11:34:12 浏览: 2
在 C 语言中,计算阶乘 (n!) 可以通过递归或者循环的方式实现。下面是一个简单的非递归版本,它使用 for 循环来进行计算:
```c
#include <stdio.h>
// 函数定义,用于计算阶乘
unsigned long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本情况,0! 和 1! 等于1
return 1;
} else {
unsigned long long result = 1; // 初始化结果为1
for (int i = 2; i <= n; i++) {
result *= i; // 将当前数乘到结果上
}
return result;
}
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
if (n >= 0) { // 检查输入是否是非负整数
unsigned long long fact = factorial(n);
printf("n! = %llu\n", fact);
} else {
printf("错误!请输入一个非负整数。\n");
}
return 0;
}
```
在这个程序中,用户会通过 `scanf` 输入一个整数 `n`,然后 `factorial` 函数会计算并返回它的阶乘。注意,由于阶乘的结果可能会非常大,当 `n` 较大时,可能会超出 `int` 类型的范围,因此这里我们使用了 `unsigned long long` 类型来存储。
阅读全文