c语言,求函数代码,如图,这是我的递归代码,系统说内存超限?
发布网友
发布时间:2023-08-27 16:29
我来回答
共1个回答
热心网友
时间:2023-09-07 15:19
你的递归函数没有返回,永远也不会结束。n<=0 后在函数并不会结束,只是在n为负数阶段不会输出,但是n不断-1必然最终会翻转为正整数,然后n从最大的正整数开始递归输出到n<=0,如此循环往复,当然最终内存超限了。
解决办法很简单,给递归函数加个中止条件就行了,符合条件就返回。
void fu(char ch, int n, int x)
{
int i;
if (n == 1)
{
printf("%c", ch);
return;
}
for (i = 0; i < n; i++)
{
printf("%c", ch);
}
fu(ch, n - 1, 1);
}