1131: 最常用字符
时间限制: 1 Sec 内存限制: 128 MB
提交: 11421 解决: 5081
[状态] [讨论版] [提交] [命题人:admin]
题目描述
英文字母里出现频率最高的是哪个字母呢? 给定一个字符串,输出字符串中出现次数最多的字母。
输入
输入一个只含有大小写字母和空格的字符串,长度不超过100,以回车结束。
输出
输出一个小写字母,表示该字符串中出现次数最多的字母。若答案有多个,则只输出ASCII码最小的那个。
样例输入 Copy
An apple
样例输出 Copy
a
#include <stdio.h>
#include <stdlib.h>
// 最常用字符
int main() {
// 声明字符数组a
char a[150];
int k = 0, i = 0, j;
// 创建并初始化数组s
int s[27] = {
0};
while((a[i] = getchar()) != '\n'){
// 将大写字母转换为小写字母
if(a[i] >= 'A' && a[i] <= 'Z')
a[i] = a[i] + 32;
j = a[i] - 'a';
s[j] += 1;
i++;
}
// 遍历数组,找最大值
for(i = 0; i < 26; i++){
if(s[k] < s[i]){
// 如果s[k]<s[i],更新下标k为i
k = i;
}
}
printf("%c\n", k + 'a');
return 0;
}