用C语言编写一个程序,从键盘输入 n 的值,输出 n 的阶乘值。
时间: 2024-10-27 15:06:20 浏览: 51
当然可以。在C语言中,计算阶乘通常通过递归函数实现。这是一个简单的示例程序:
```c
#include <stdio.h>
// 定义阶乘函数,如果n小于0返回错误,0和1的阶乘为1,其他n的阶乘为n乘以前面所有数的阶乘
long long factorial(int n) {
if (n < 0) {
printf("Error! Factorial is not defined for negative numbers.\n");
return -1;
} else if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
// 输入n的值
printf("Enter a non-negative integer: ");
scanf("%d", &n);
// 计算并输出阶乘
long long result = factorial(n);
if (result != -1) {
printf("The factorial of %d is %lld.\n", n, result);
}
return 0;
}
```
当你运行这个程序,它会提示你输入一个非负整数,然后计算并显示它的阶乘。
相关问题
用C语言的循环编写一个程序,从键盘输入 n 的值,输出 n 的阶乘值。
在C语言中,你可以通过使用for循环来计算一个数的阶乘。阶乘是指从1到该数的所有正整数相乘的结果。下面是一个简单的示例程序:
```c
#include <stdio.h>
// 定义计算阶乘的函数
unsigned long long factorial(int n) {
unsigned long long result = 1; // 初始化结果为1
for (int i = 1; i <= n; ++i) {
result *= i; // 逐次将i乘到结果上
}
return result;
}
int main() {
int n;
printf("请输入一个非负整数: ");
scanf("%d", &n);
// 检查输入是否合法
if (n >= 0) {
unsigned long long fact = factorial(n);
printf(" %d 的阶乘是: %llu\n", n, fact);
} else {
printf("错误: 输入的数字必须是非负整数。\n");
}
return 0;
}
```
在这个程序中,用户首先输入一个整数`n`,然后调用`factorial`函数计算阶乘。如果输入的数非负,它会输出阶乘;否则,会提示错误信息。
C语言编写程序:从键盘输入n,然后计算并输出1~n之间的所有数的阶乘值。
好的,以下是您所需的C语言程序:
```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;
}
```
程序的运行流程如下:
1. 首先从键盘输入n的值;
2. 然后使用两个for循环,分别计算1~n之间每个数的阶乘值;
3. 最后输出每个数的阶乘值。
希望对您有帮助!
阅读全文