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

#include <stdio.h> int suma(char a[],int res[]) { int i = 0,count_save=0,count=0; while(a[i] != '\n' && a[i] != '\0') { if(a[i]==' '){ res[count_save++]=count; count=0; }else {count++;} i++; }res[count_save++]=count; return count_save; } 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"}; int res[1001]; int answer = 0; answer=sum(a); int all=0; all+=answer; printf("%d",all); return 0; }
这段代码试图统计字符串中每个单词的字母数,然后比较第一个单词和最后一个单词的字母数是否相等。但代码存在几个问题。

首先,`sum` 函数中调用 `suma(a)` 时没有传入第二个参数 `res`,这会导致编译错误。`suma` 函数需要两个参数,但这里只给了一个。

其次,`sum` 函数中比较 `a[0]` 和 `a[size-1]` 是错误的。`a[0]` 是字符串的第一个字符,`a[size-1]` 是字符串的最后一个字符,而不是单词的长度。你实际上想比较的是 `res[0]` 和 `res[size-1]`,但 `res` 在 `sum` 函数中并没有定义。

- 检查 `sum` 函数中调用 `suma` 时是否缺少了必要的参数。
- 思考 `sum` 函数中应该比较什么值,以及如何获取这些值。