Online Compiler C

#include <stdio.h> void reverse_string(void){ char c; scanf("%c",&c); if(c==.){ return; } reverse_string(); printf("%c",&c); }
这段代码试图通过递归来反转输入的字符串,但存在几个问题。

- 递归调用在读取字符之后,打印字符之前,这符合反转的逻辑,但条件判断和打印语句有错误。
- 在 `if(c==.)` 中,`.` 应该用单引号括起来,写成 `'.'`,否则编译器会认为 `.` 是一个标识符而不是字符常量。
- `printf("%c",&c);` 中,`&c` 是字符的地址,而 `%c` 需要的是字符本身,应该去掉取地址符 `&`,直接使用 `c`。