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

#include <stdio.h> #include <string.h> int main() { int count = 0; char c[1001]; while(scanf("%s",c)==1) { char start = c[0]; int Long = strlen(c); char last = c[Long-1]; if(start == last) { count++; } } printf("%d",count); return 0; }
这段代码的作用是:从输入中读取多个单词(以空白字符分隔),统计那些首字母和尾字母相同的单词个数,最后输出统计结果。

代码逻辑基本正确,但有一个潜在问题需要注意:

- 使用 `scanf("%s", c)` 读取单词时,如果输入中包含换行符或空格,`scanf` 会跳过它们,但不会读取空行。如果题目要求处理多行输入或空行,这里可能不会按预期工作。

- 数组 `c` 的大小是 1001,如果输入的单词长度超过 1000 个字符(加上结尾的 '\0' 共 1001),会导致缓冲区溢出。