zzulioj1131: 最常用字符
1131: 最常用字符
题目描述 英文字母里出现频率最高的是哪个字母呢? 给定一个字符串,输出字符串中出现次数最多的字母。
输入 输入一个只含有大小写字母和空格的字符串,长度不超过100,以回车结束。
输出 输出一个小写字母,表示该字符串中出现次数最多的字母。若答案有多个,则只输出ASCII码最小的那个。
样例输入 Copy An apple 样例输出 Copy a
代码
#include<stdio.h>
#include<ctype.h>
int main()
{
int i,max,maxi,a[27]={
0}; //定义数组用来存储对应序号上字母的出现次数
char ch;
while(scanf("%c",&ch),ch!=
)
{
if(isalnum(ch)) //若输入的为字母 ,则统一转为小写形式
ch=tolower(ch);
a[ch-96]++; //ch-96可求得该字母在字母表中的序号,++表示该字母出现了一次
}
maxi=0;max=a[0]; //定义初始初始出现次数最多的字母序号与其出现值
for(i=0;i<27;i++)
{
if(a[i]>max)
{
max=a[i];
maxi=i;
}
}
printf("%c
",maxi+96);
return 0;
}
说明 计算字母在字母表中的序号: 小写字母 ch-96或者ch-‘a’+1 大写字母: ch-64或者ch-‘A’+1
