小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。
#include<stdio.h>
int main()
{
char a[10],b[27]; //a数组用来存放单词,b数组存放26个英文字母 ,要预留一个位置存放空字符
int c[26]={0}; //下角标用来标记对应的字母出现次数 ,先初始化为0
int j=0,i=0;int max,t=0;
gets(a);
for(i;i<26;i++) //为b数组赋值26个英文字母
b[i]='a'+i;
i=0;
while(a[i]!='\0')
{
for(j=0;j<26;j++)//这里一定要声明j=0,如果不声明的话结果会有问题,虽然上文以及声明了
{
if(a[i]==b[j]) //将每一个字符与26个英文字母一一比较
c[j]+=1; //找到的同时,记录其在26个英文中的位置,并且计数(出现次数)
}
i++;
}
max=c[0];
for(i=0;i<26;i++)
{
if(max<c[i])
{
max=c[i]; //值最大也就是出现次数最多
t=i; //将它在26个字母中的位置传递给t
}
}
printf("%c\n%d",'a'+t,max);//转换成小写字母,并输出出现次数
}
以上就是全部内容了 如果有什么需要改进地方 欢迎大家留言 小编也是新学c语言不久 欢迎大家一起交流进步