Онлайн компилятор C

#include <stdio.h> void reverse_string(void){ char c; if((c=getchar())=='.'){ return; }printf("%c",c); reverse_string(); } int main() { reverse_string(); return 0; }
这段代码定义了一个递归函数 `reverse_string`,它从标准输入读取字符,遇到句点 '.' 时停止读取并返回。但代码在递归调用之前就打印了字符,所以字符会按输入顺序输出,而不是逆序。

- 递归函数中,打印字符的语句放在了递归调用之前,导致字符按输入顺序输出。要实现逆序,应该先递归调用,再打印字符。
- 递归的终止条件是读取到 '.',但 '.' 本身没有被打印。如果需要打印 '.',需要在终止条件中处理。