Online Compiler C

#include <stdio.h> int main() { char c,save=0; while((c=getchar())!='.'){ if( c=='.'&& save==' '){ }else { putchar(c); } save=c; } return 0; }
这段代码试图从输入中读取字符,直到遇到句点为止,并输出字符。但代码中有一个逻辑问题:它试图在遇到句点且前一个字符是空格时跳过输出,但实际上这个条件永远不会成立,因为循环在遇到句点时就结束了。

- 循环条件 `(c=getchar())!='.'` 会在读取到句点时立即退出循环,因此循环体内的 `if( c=='.'&& save==' ')` 条件永远不会为真,因为此时 `c` 不可能是句点。
- 你的意图可能是想删除句点前的空格,但当前实现无法达到这个效果。思考一下如何调整循环结构,使得在读取到句点后还能检查前一个字符。