用C语言编写一个求阶乘的程序
时间: 2023-09-04 13:10:06 浏览: 41
下面是用 C 语言编写的一个求阶乘的程序示例:
```c
#include <stdio.h>
int main() {
int n, i;
unsigned long long factorial = 1;
printf("请输入一个正整数:");
scanf("%d", &n);
// 计算阶乘
for (i = 1; i <= n; ++i) {
factorial *= i;
}
printf("%d 的阶乘为 %llu\n", n, factorial);
return 0;
}
```
程序首先提示用户输入一个正整数,然后使用 scanf 函数读取用户输入的值。接着,程序使用 for 循环计算输入值的阶乘,并将结果输出到屏幕上。需要注意的是,为了避免阶乘结果超出 int 类型的范围,我们使用了 unsigned long long 类型来存储阶乘的结果。
相关问题
用C语言编写一个可以求任意阶乘的程序
以下是用C语言编写的可以求任意阶乘的程序:
```c
#include <stdio.h>
long long factorial(int n) {
long long result = 1;
for(int i=1; i<=n; i++) {
result *= i;
}
return result;
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
long long fact = factorial(n);
printf("%d的阶乘是:%lld", n, fact);
return 0;
}
```
在这个程序中,我们定义了一个函数`factorial`,用来计算给定整数n的阶乘。在主函数中,我们首先输入一个正整数n,然后调用`factorial`函数计算n的阶乘,并输出结果。
值得注意的是,当n比较大时,阶乘的结果可能会超出long long类型的表示范围,导致计算错误。这时需要使用高精度计算方法来处理。
用c语言写一个求阶乘的代码
以下是用C语言编写的求阶乘的代码:
```c
#include <stdio.h>
int main() {
int n, i;
unsigned long long factorial = 1;
printf("请输入一个整数:");
scanf("%d", &n);
// 如果 n 是负数,则不能求阶乘
if (n < 0) {
printf("错误!负数没有阶乘。\n");
}
else {
for (i = 1; i <= n; ++i) {
factorial *= i;
}
printf("%d 的阶乘 = %llu\n", n, factorial);
}
return 0;
}
```
在这个程序中,我们定义了一个整数变量 `n` 和一个无符号长整型变量 `factorial`,`n` 用于存储用户输入的整数,`factorial` 用于存储阶乘的结果。程序首先提示用户输入一个整数,然后使用 `scanf()` 函数读入这个整数。接着,程序使用 `for` 循环计算阶乘,并将结果存储在 `factorial` 变量中。最后,程序输出计算结果。
需要注意的是,由于阶乘的结果可能非常大,因此我们使用了无符号长整型变量来存储结果。在计算阶乘时,我们也需要注意溢出的问题。