Online Compiler C

#include <stdio.h> int suma(char a[]) { int i = 0,count_save=0,count=0; while(a[i] != '\n' && a[i] != '\0') { if(a[i]==' '){ count_save=count; i++; count=0; return count_save; }count++; } return count; } int sum(char a[]) { int size=suma(a); if(a[0]==a[size-1]){ return 1; }return 0; } int main() { char a[1001]={"Anna went to kayak school"},c ; int answer = 0,i=0; while((c=getchar())!=EOF){ a[i]=c; i++; } answer=suma(a); printf("%d\n", answer); return 0; }
这段代码试图从输入中读取字符串,并找出第一个单词的长度,但存在几个问题。

函数 `suma` 的作用是计算第一个单词的长度,但它在遇到空格时立即返回了之前保存的 `count_save`,这会导致只返回0,因为 `count` 在遇到空格前被重置为0。另外,`sum` 函数没有被使用,而 `main` 函数中调用了 `suma` 并打印结果。

- 在 `suma` 函数中,当遇到空格时,你执行了 `return count_save`,但此时 `count_save` 的值是之前保存的 `count`,而 `count` 在遇到空格前已经被重置为0,所以返回值总是0。你需要重新考虑何时保存和返回计数值。
- 注意 `sum` 函数检查第一个和最后一个字符是否相同,但你的代码中并没有调用它。如果你希望实现这个功能,需要调整 `main` 中的调用逻辑。