这个逻辑上很简单啊,读取一个字符,如果不是EOF,就继续递归,直到读出EOF,然后显示字符,结束。
所以你的程序里,if及下面的递归调用改一下就好。自己试试吧!
int recursive()
{
char ch;
ch=getchar();
if (ch !=EOF) recursive();
putchar(ch);
return 0;
}
把每次调用recursive()的地方都用recursive的整个函数体替换一遍,就像俄罗斯套娃一样,再来看这个程序,就懂了。
因为是递归,相当于后进先出的栈。停止输入后开始输出,倒着来一遍 逆序了