【发布时间】:2020-11-03 12:52:57
【问题描述】:
所以我无法理解在这个程序中使用 if 语句来反转字符串的逻辑,while 循环不应该类似地执行任务,但是当你用 while((c=getchar())!='\n') 替换 if((c=getchar())!='\n') 它只打印字符串的最后一个字符。我需要帮助了解在这两种情况下这种递归的工作方式有何不同。
#include <stdio.h>
void wrt_t(void);
int main(void)
{
wrt_t();
putchar('\n');
return 0;
}
void wrt_t(void){
int c;
if((c=getchar())!='\n'){
wrt_t();
}
putchar(c);
}
【问题讨论】:
-
您是否尝试过用笔和纸运行逻辑?这样更容易理解。
-
当达到
\n时,所有cs 都在等待打印,因此将在递归展开时反向打印。
标签: c string if-statement recursion while-loop