输入一个正整数 n,n小于等于20;输出1到 n 之间的阶乘表 用 C语言解答
时间: 2024-11-25 17:20:32 浏览: 4
在C语言中,计算阶乘并打印1到n之间的阶乘表可以使用循环结构和递归函数。这里是一个简单的示例,用于计算和打印1到n的阶乘:
```c
#include <stdio.h>
// 递归函数计算阶乘
unsigned long long factorial(int num) {
if (num == 0 || num == 1) // 阶乘的基本情况
return 1;
else
return num * factorial(num - 1); // 递归调用
}
int main() {
int n;
printf("请输入一个正整数(不大于20): ");
scanf("%d", &n);
// 检查输入是否有效
if (n > 20) {
printf("抱歉,n不能大于20.\n");
return 0;
}
// 打印阶乘表
for (int i = 1; i <= n; ++i) {
unsigned long long fact = factorial(i);
printf("%d! = %llu\n", i, fact);
}
return 0;
}
```
相关问题
c语言 输出我输入的n的阶乘 n是小于14的正整数
以下是 C 语言代码,可以输出输入的 n 的阶乘:
#include <stdio.h>
int main() {
int n, i, fact = 1;
printf("请输入一个小于14的正整数 n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
fact *= i;
}
printf("%d 的阶乘是 %d\n", n, fact);
return 0;
}
注意:如果输入的 n 大于等于 14,那么阶乘会超出 int 类型的范围,导致计算结果不正确。
C语言输入一个正整数n求n!
在C语言中,要求解一个正整数n的阶乘(n!),你可以使用循环结构来计算。阶乘是所有小于及等于n的正整数相乘的结果。以下是一个简单的函数示例:
```c
#include <stdio.h>
// 函数声明,返回值类型是long long,因为n!可能会非常大
long long factorial(int n);
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
if (n >= 0) { // 检查输入是否为非负整数
long long result = factorial(n);
printf("n! = %lld\n", result);
} else {
printf("输入错误,只接受正整数。\n");
}
return 0;
}
// 计算阶乘的函数
long long factorial(int n) {
long long fact = 1; // 初始化阶乘为1
for (int i = 1; i <= n; i++) {
fact *= i; // 将当前数乘到结果上
}
return fact;
}
```
在这个程序中,用户输入一个正整数`n`,然后调用`factorial`函数计算并打印其阶乘。
阅读全文