【发布时间】:2020-08-17 06:41:42
【问题描述】:
对于下面显示的代码,我没有得到任何响应;我在没有条件的情况下保持最小化,例如想象人们会选择正数。它没有给我任何回应:
进程返回 -1073741571 (0xC00000FD) 执行时间:3.194 s
如果我输入 5,答案应该是 120,而不是这里。
#include <stdio.h>
#include <stdlib.h>
int faktorijel(int x) {
return (x*faktorijel(x-1));
}
main() {
int a,b;
printf("Type in a number:");
scanf("%d\n", &a);
b=faktorijel(a);
printf("Result is %d\n", b);
return 0;
}
【问题讨论】:
-
无限递归。仔细看看为什么会这样。
-
@njuffa 我学c没睡过,所以我几乎不能看屏幕,但我唯一的猜测是没有下基数。它走向无限的负面
-
如果你的循环没有终止条件,它将永远循环。同样的原则也适用于递归。你必须有一个停止条件。
-
@tadman tnx 两者,刚刚添加并自行修复。
-
OT:缩进你的代码。