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

#include <stdio.h> #include <string.h> int main() { char s[1001]; fgets(s, 1001, stdin); for (int i = strlen(s) - 1; s[i] == '\n'; i--) ; for (; i >= 0; putchar(s[i--])) ; } return 0; }
这段代码试图读取一行字符串并反向输出,但存在语法错误和逻辑问题。

- 第8行的 `for` 循环中,变量 `i` 没有声明,导致编译错误。你需要在使用 `i` 之前先声明它。
- 第8行的循环条件 `s[i] == '\n'` 是多余的,因为 `fgets` 会保留换行符,但你的目的是去掉换行符再反向输出。思考如何正确找到字符串的最后一个有效字符的位置。