| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #include <stdio.h>
- #include <stdio.h>
- #include <string.h>
- /*
- * 函数功能:统计字符串中出现次数最多的字母,并输出该字母。
- * 参数说明:
- * a[] - 输入的字符串,用于统计其中字母的出现次数。
- * 返回值:无返回值。
- */
- void fun(char a[]) {
- int b[26], i, n, max;
- // 初始化数组b,用于记录每个字母的出现次数(a-z对应索引0-25)
- for (i = 0; i < 26; i++)
- /**********found**********/
- b[i] = 0; // a[i] = 0; 改正
- // 获取字符串长度
- n = strlen(a);
- // 遍历字符串,统计每个字母的出现次数
- for (i = 0; i < n; i++)
- if (a[i] >= 'a' && a[i] <= 'z')
- // 将小写字母转换为对应的索引并增加计数
- /**********found**********/
- b[a[i] - 'a']++; // b[a[i] - 'A']++; 改正
- else if (a[i] >= 'A' && a[i] <= 'Z')
- // 将大写字母转换为对应的索引并增加计数
- b[a[i] - 'A']++;
- // 查找出现次数最多的字母对应的索引
- max = 0;
- for (i = 1; i < 26; i++)
- /**********found**********/
- if (b[max] > b[i]) // if (b[max] < b[i]) 改正
- max = i;
- // 输出出现次数最多的字母
- printf("出现次数最多的字符是 : %c\n", max + 'a');
- }
- int main() {
- char a[200];
- printf("请输入一个待统计的字符串 : ");
- scanf("%s", a);
- fun(a);
- }
|