C语言求n!。程序中满足如下要求: ① 从键盘输入n; ② n>=0;若n<0则提示输入数据无效。 ③ 如果n>12 结果将提示越界,否则输出n的阶乘。 ④ 输出格式例如: 5!= 120
时间: 2024-11-20 07:40:58 浏览: 15
在C语言中,计算一个数n的阶乘通常采用递归的方式。下面是一个简单的C程序示例,它实现了上述要求:
```c
#include <stdio.h>
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else if (n > 12) {
printf("结果将超出整型范围,无法显示。\n");
return ULONG_MAX; // 设置一个大值表示超界
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
printf("请输入一个非负整数n(0<=n<=12): ");
scanf("%d", &n);
if (n < 0) {
printf("输入数据无效,n必须是非负整数。\n");
} else {
unsigned long long result = factorial(n);
printf("%d! = %llu\n", n, result);
}
return 0;
}
```
这个程序首先定义了一个递归函数`factorial`用于计算阶乘,然后在`main`函数中获取用户输入并验证其有效性。如果n大于12,程序会打印出提示信息并返回一个表示边界的大值。如果输入有效,就计算并输出阶乘的结果。
阅读全文