使用C语言输入一个n并打印1-n的阶乘。
时间: 2024-02-09 22:08:52 浏览: 84
好的,你可以参考下面的代码来实现:
```c
#include <stdio.h>
int main() {
int n, i, j, factorial;
printf("请输入一个整数n: ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
factorial = 1;
for (j = 1; j <= i; j++) {
factorial *= j;
}
printf("%d! = %d\n", i, factorial);
}
return 0;
}
```
这个程序会要求用户输入一个整数n,然后会依次计算并输出1到n的阶乘。其中,外层循环控制计算的范围,内层循环计算阶乘。
相关问题
c语言打印1-n的阶乘
在C语言中,计算并打印1到n的阶乘可以采用循环结构,如for循环,同时需要一个递归函数或者动态内存分配来存储中间结果。下面是一个简单的非递归版的示例:
```c
#include <stdio.h>
// 计算n的阶乘
unsigned long long factorial(int n) {
if (n == 0 || n == 1) // 阶乘的基本情况,0和1的阶乘都是1
return 1;
else
return n * factorial(n - 1);
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
if (n < 0) {
printf("输入错误!阶乘只对正整数有效。\n");
} else {
unsigned long long result = factorial(n);
printf("从1到%d的阶乘是:%llu\n", n, result);
}
return 0;
}
```
c语言计算n的阶乘并打印结果
在C语言中,计算一个数n的阶乘是一个常见的练习题目,阶乘表示从1乘到该数的所有整数相乘的结果。以下是使用循环结构实现的一个简单函数:
```c
#include <stdio.h>
// 定义一个递归函数计算阶乘
long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本情况,0和1的阶乘都是1
return 1;
} else {
return n * factorial(n - 1); // 递归调用,将n乘以前面的n-1的阶乘
}
}
int main() {
int num;
printf("请输入一个非负整数: ");
scanf("%d", &num);
long long result = factorial(num);
if (result > INT_MAX) { // 如果阶乘结果超过整型的最大值,提示错误
printf("计算结果过大,无法存储。\n");
} else {
printf("%d 的阶乘是: %lld\n", num, result);
}
return 0;
}
```
在这个程序中,用户输入一个整数`num`,然后通过`factorial`函数计算其阶乘,并将其打印出来。如果阶乘结果超过了`int`类型的范围,会提示错误。
阅读全文