c语言递归练习题,用debug自己搞了一遍还是搞不懂为什么会倒着输出一遍,求大神给讲讲

2024-12-23 06:45:38
推荐回答(4个)
回答1:

这个逻辑上很简单啊,读取一个字符,如果不是EOF,就继续递归,直到读出EOF,然后显示字符,结束。

所以你的程序里,if及下面的递归调用改一下就好。自己试试吧!

int recursive()
{
char ch;
ch=getchar();
if (ch !=EOF) recursive();

putchar(ch);
return 0;
}

回答2:

把每次调用recursive()的地方都用recursive的整个函数体替换一遍,就像俄罗斯套娃一样,再来看这个程序,就懂了。

回答3:

因为是递归,相当于后进先出的栈。停止输入后开始输出,倒着来一遍 逆序了

回答4: