编写计算 n!的程序,n从键盘输入,用 for 循环和 while 循环分别实现。c语言。 运行效果: 请输入整数n:6 6!=720 提示:注意存阶乘变量的数据类型和取值范围。
时间: 2024-12-11 10:17:33 浏览: 29
首先,让我们编写使用for循环的版本,这将更适合计算阶乘,因为for循环更便于控制循环次数:
```c
#include <stdio.h>
// 使用long long防止溢出,因为阶乘可能会非常大
long long factorial(int n) {
long long fact = 1;
for (int i = 1; i <= n; i++) {
fact *= i;
}
return fact;
}
int main() {
int n;
printf("请输入整数n:");
scanf("%d", &n);
long long result = factorial(n);
printf("%d!=%lld\n", n, result);
return 0;
}
```
这段代码会询问用户输入一个整数n,然后使用for循环计算并打印该数的阶乘。
接下来,我们用while循环实现:
```c
#include <stdio.h>
#include <math.h> // 使用math库避免使用long long直接计算,因为它可能会溢出
int main() {
int n;
printf("请输入整数n:");
scanf("%d", &n);
long long result = 1;
int i = 1;
while (i <= n) {
result *= i;
i++;
}
printf("%d!=%lld\n", n, result);
return 0;
}
```
这段代码的功能相同,只是使用了while循环,先初始化结果为1,然后在循环中逐个累乘。
阅读全文