用C语言编写一个程序,用于接收用户输入的整数,并且输出该整数的阶乘
时间: 2025-01-18 22:04:12 浏览: 54
以下是一个用C语言编写的程序,用于接收用户输入的整数并输出该整数的阶乘:
```c
#include <stdio.h>
// 函数声明:计算阶乘
long long factorial(int n);
int main() {
int num;
long long result;
// 提示用户输入一个整数
printf("请输入一个非负整数:");
scanf("%d", &num);
// 检查输入是否为非负整数
if (num < 0) {
printf("错误:负数没有阶乘。\n");
return 1;
}
// 计算阶乘
result = factorial(num);
// 输出结果
printf("%d 的阶乘是 %lld\n", num, result);
return 0;
}
// 计算阶乘的函数
long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
```
这个程序的工作原理如下:
1. 程序首先包含标准输入输出库 `stdio.h`。
2. 我们声明了一个函数 `factorial`,用于计算阶乘。这个函数使用递归的方法来计算阶乘。
3. 在 `main` 函数中,我们声明了两个变量:`num` 用于存储用户输入的整数,`result` 用于存储计算结果。
4. 程序提示用户输入一个非负整数,并使用 `scanf` 函数读取输入。
5. 我们检查输入是否为负数。如果是,程序会输出错误消息并退出。
6. 如果输入有效,我们调用 `factorial` 函数计算阶乘,并将结果存储在 `result` 变量中。
7. 最后,程序输出计算结果。
8. `factorial` 函数使用递归的方式计算阶乘。如果输入是 0 或 1,函数返回 1;否则,它返回 n 乘以 factorial(n-1)。
这个程序可以处理较大的整数,因为我们将 `result` 变量声明为 `long long` 类型,它可以存储非常大的整数。然而,对于非常大的输入值,可能会发生整数溢出的情况。
阅读全文
相关推荐


















