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

#include <stdio.h> int suma(char a[]) { int i = 0; while (a[i] != '\0' && a[i] != '\n') { i++; } return i; } int sum(char a[]) { int num=0; int size=suma(a); if(a[0]==a[size-1]){ num++; }return num; } int main() { char a[1001]={"Anna went to kayak school"} ; int answer = 0; answer=sum(a); answer+=answer; // printf("a = '%s'\n", a); // printf("b = '%s'\n", b); printf("%d\n", answer); return 0; }
这段代码定义了两个函数:`suma` 计算字符串长度(不包括换行符),`sum` 检查字符串的第一个字符和最后一个字符是否相同,如果相同则返回1,否则返回0。主函数中,`answer` 先被赋值为 `sum(a)` 的结果,然后 `answer += answer` 将结果翻倍,最后打印出来。

对于字符串 "Anna went to kayak school",第一个字符是 'A',最后一个字符是 'l',它们不相同,所以 `sum` 返回0,最终输出0。

- 你的 `sum` 函数只检查了首尾字符是否相等,但题目可能要求统计字符串中所有首尾字符相等的单词数量。你需要重新理解题目要求,考虑如何分割字符串并逐个单词判断。
- 注意 `answer += answer` 这行代码,它把 `answer` 的值加倍了。如果 `sum` 返回的是单词数量,这样加倍可能不符合题意,需要确认是否真的需要这一步。