在线编译器 C

#include <stdio.h> void reverse_string(void){ char c; if((c=getchar)!='.'){ printf("%c",c); } } int main() { reverse_string(); return 0; }
这段代码试图实现一个从输入读取字符并反转输出的功能,但目前存在逻辑问题。`reverse_string`函数在读取到非句号字符时立即打印该字符,这实际上只是顺序输出,并没有实现反转。

- 函数`reverse_string`中,`if((c=getchar)!='.')`这一行缺少了括号,导致`getchar`没有被正确调用。应该写成`if((c = getchar()) != '.')`,否则`c`得到的是函数地址而非读取的字符。
- 要实现反转,你需要先递归地读取字符,直到遇到终止符(比如句号),然后在递归返回时再打印字符。当前代码在读取后立即打印,所以是顺序输出。考虑在递归调用之后再进行打印操作。