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

经验分享 程序员 微信小程序 职场和发展