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

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

- 递归调用在读取字符之后,打印字符之前,这个顺序是正确的,但打印时使用了错误的语法。
- 在 `printf` 中,你写的是 `printf("%c",&c)`,这里 `&c` 是字符的地址,而不是字符本身。`%c` 需要传入字符值,而不是指针。
- 另外,递归的终止条件是遇到句点,但输入字符串可能没有句点,或者句点位置不固定,这会影响反转结果。