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

#include <stdio.h> void reverse_string(void){ char c; if((c=getchar())=='.'){ return; }reverse_string(c); } int main() { reverse_string(); return 0; }
这段代码试图通过递归实现字符串反转,但存在几个问题。

- 递归函数 `reverse_string` 被定义为无参数,但在递归调用时却传入了参数 `c`,这会导致编译错误。
- 函数内部读取字符后,如果遇到句点就返回,否则应该先递归再输出字符,但当前代码缺少输出字符的步骤。

- 检查函数定义和调用时的参数是否匹配,递归调用时不需要传递参数。
- 思考递归反转的核心逻辑:先递归处理后续字符,再输出当前字符。