C语言高手请进,问个函数递归问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 17:26:38
#include <stdio.h>

void run()

{

char c;

c=getchar();

if(c!='\n')

{

run();

}

else

{

return;

}

putchar(c);

}

void main()

{

run();

printf("\n");

getch();

}

上面这个程序用函数递归调用,接受用户输入字符,当用户输入回车时,输出用户输入的倒序字符!

问:当用户输入不为回车时,FUN()继续调用自身,可输出时为什么会倒序输出?

选运行 run() 然后再运行 putchar()
当然会倒序,因为没运行完时,是压入栈里的

由于在递归调用过程中,每个run()中都有putchar(),所以,在一步步返回时都回输出一个字符,这与你输入的顺序是相反的。
还有,最后应该成getchar()