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()继续调用自身,可输出时为什么会倒序输出?
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()