递归函数void UnPrint(void){char c;c=getchar();if(c=='\n'){return ;}UnPrint();putchar(c);}void main(){UnPrint();}假如输入 asdf回车但遇到 回车键 程序中已经return掉了为什么还会执行putchar(c) 四次 ,反向输出fdsa输入\n
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 17:51:47
![递归函数void UnPrint(void){char c;c=getchar();if(c=='\n'){return ;}UnPrint();putchar(c);}void main(){UnPrint();}假如输入 asdf回车但遇到 回车键 程序中已经return掉了为什么还会执行putchar(c) 四次 ,反向输出fdsa输入\n](/uploads/image/z/6943497-33-7.jpg?t=%E9%80%92%E5%BD%92%E5%87%BD%E6%95%B0void+UnPrint%28void%29%7Bchar+c%3Bc%3Dgetchar%28%29%3Bif%28c%3D%3D%27%5Cn%27%29%7Breturn+%3B%7DUnPrint%28%29%3Bputchar%28c%29%3B%7Dvoid+main%28%29%7BUnPrint%28%29%3B%7D%E5%81%87%E5%A6%82%E8%BE%93%E5%85%A5+asdf%E5%9B%9E%E8%BD%A6%E4%BD%86%E9%81%87%E5%88%B0+%E5%9B%9E%E8%BD%A6%E9%94%AE+%E7%A8%8B%E5%BA%8F%E4%B8%AD%E5%B7%B2%E7%BB%8Freturn%E6%8E%89%E4%BA%86%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%98%E4%BC%9A%E6%89%A7%E8%A1%8Cputchar%28c%29+%E5%9B%9B%E6%AC%A1+%2C%E5%8F%8D%E5%90%91%E8%BE%93%E5%87%BAfdsa%E8%BE%93%E5%85%A5%5Cn)
递归函数void UnPrint(void){char c;c=getchar();if(c=='\n'){return ;}UnPrint();putchar(c);}void main(){UnPrint();}假如输入 asdf回车但遇到 回车键 程序中已经return掉了为什么还会执行putchar(c) 四次 ,反向输出fdsa输入\n
递归函数
void UnPrint(void)
{
char c;
c=getchar();
if(c=='\n')
{
return ;
}
UnPrint();
putchar(c);
}
void main()
{
UnPrint();
}
假如输入 asdf回车
但遇到 回车键 程序中已经return掉了
为什么还会执行putchar(c) 四次 ,反向输出fdsa
输入\n->返回到上层调用(第5次调用)跟执行putchar(c)有什么关系.putchar(c)是之前已经被压入栈,所以即使return后,也会被执行吗
递归函数void UnPrint(void){char c;c=getchar();if(c=='\n'){return ;}UnPrint();putchar(c);}void main(){UnPrint();}假如输入 asdf回车但遇到 回车键 程序中已经return掉了为什么还会执行putchar(c) 四次 ,反向输出fdsa输入\n
getchar() (第一次调用unprint)->输入a->a不为\n->getchar()(第2次调用unprint)->
输入s->不为\n->getchar()(第3次调用unprint)->输入d->不为\n->getchar()第4次调用unprint->输入f->不为\n第5次调用unprint->getchar()->输入\n->返回到上层调用(第5次调用)
你把整个过程分析下.