|
发表于 2024-1-5 22:26:07
|
显示全部楼层
你好!你的程序中调用了一个未定义的函数fac(x),因此无法通过编译。实际上,计算n的阶乘可以使用递归或循环两种方法来实现。下面是两种方法的代码示例:
1. 使用递归方法计算n的阶乘:
- #include <stdio.h>
- int fac(int n) {
- if (n == 0 || n == 1) {
- return 1;
- } else {
- return n * fac(n-1);
- }
- }
- int main() {
- int n, val;
- printf("请输入一个正整数:");
- scanf("%d", &n);
- val = fac(n);
- printf("%d的阶乘为:%d\n", n, val);
- return 0;
- }
复制代码
2. 使用循环方法计算n的阶乘:
- #include <stdio.h>
- int main() {
- int n, val = 1;
- printf("请输入一个正整数:");
- scanf("%d", &n);
- for (int i = 1; i <= n; i++) {
- val *= i;
- }
- printf("%d的阶乘为:%d\n", n, val);
- return 0;
- }
复制代码
希望这个回答能够帮到你!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|