C.蓝桥杯中字母出现个数的问题

小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。

 

现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。

 

#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语言不久 欢迎大家一起交流进步

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值