【发布时间】:2018-04-26 03:09:09
【问题描述】:
#include <stdio.h>
void reverseSentence();
int main()
{
printf("Enter a sentence: ");
reverseSentence();
return 0;
}
void reverseSentence()
{
char c;
scanf("%c", &c);
if( c != '\n')
{
reverseSentence();
printf("%c",c);
}
我试过这段代码,我知道它是正确的,但我不知道为什么递归有效。这似乎有点不直观。有人可以解释一下它为什么起作用吗?另外,\n 到底在做什么?(这就是我认为我的问题的答案所在)。谢谢。
【问题讨论】:
-
你试过用调试器单步调试吗?
-
何时以及如何不使用递归的完美示例。
-
有一个关于递归如何工作的解释here
-
将
scanf("%c", &c);更改为scanf(" %c", &c);