C2_01.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include <stdio.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. /*
  5. * 函数功能:统计字符串中出现次数最多的字母,并输出该字母。
  6. * 参数说明:
  7. * a[] - 输入的字符串,用于统计其中字母的出现次数。
  8. * 返回值:无返回值。
  9. */
  10. void fun(char a[]) {
  11. int b[26], i, n, max;
  12. // 初始化数组b,用于记录每个字母的出现次数(a-z对应索引0-25)
  13. for (i = 0; i < 26; i++)
  14. /**********found**********/
  15. b[i] = 0; // a[i] = 0; 改正
  16. // 获取字符串长度
  17. n = strlen(a);
  18. // 遍历字符串,统计每个字母的出现次数
  19. for (i = 0; i < n; i++)
  20. if (a[i] >= 'a' && a[i] <= 'z')
  21. // 将小写字母转换为对应的索引并增加计数
  22. /**********found**********/
  23. b[a[i] - 'a']++; // b[a[i] - 'A']++; 改正
  24. else if (a[i] >= 'A' && a[i] <= 'Z')
  25. // 将大写字母转换为对应的索引并增加计数
  26. b[a[i] - 'A']++;
  27. // 查找出现次数最多的字母对应的索引
  28. max = 0;
  29. for (i = 1; i < 26; i++)
  30. /**********found**********/
  31. if (b[max] > b[i]) // if (b[max] < b[i]) 改正
  32. max = i;
  33. // 输出出现次数最多的字母
  34. printf("出现次数最多的字符是 : %c\n", max + 'a');
  35. }
  36. int main() {
  37. char a[200];
  38. printf("请输入一个待统计的字符串 : ");
  39. scanf("%s", a);
  40. fun(a);
  41. }