时间限制: 1 Sec 内存限制: 128 MB
题目描述
英文字母里出现频率最高的是哪个字母呢? 给定一个字符串,输出字符串中出现次数最多的字母。
输入输入一个只含有大小写字母和空格的字符串,长度不超过100,以回车结束。
输出输出一个小写字母,表示该字符串中出现次数最多的字母。若答案有多个,则只输出ASCII码最小的那个。
样例输入 Copy
An apple
样例输出 Copy
a
#include <stdio.h>
#include <stdlib.h>
#define N 123 //注意N的取值不能太小(至少大于小写z的ASCII值)
int main()
{
char ch;
int a[N]={0};
int number;
int i,max=0;
while(scanf("%c",&ch),ch!='\n')//把字符对应的ASCII码值作为数组下标
{
if(ch>='A' && ch<='Z')
ch=ch+32;//转换为小写字母
number=ch;
a[number]++;
}
for(i=97;i<=122;i++)//比较出频率最高的次数
{
if(a[i]>max)
max=a[i];
}
for(i=97;i<=122;i++)//输出该字母
{
if(a[i]==max)
{
printf("%c",i);
break;
}
}
return 0;
}