2 jiankeabcd jiankeabcd 于 2016.05.12 10:06 提问

c语言 一个输出出现次数最多的字母的程序

字母不区分大小写
输出格式:出现的次数 该字母
如果有复数个出现次数最多的字母,就按字母排列顺序输出

输入
One Two Buckle My Shoe
输出
3 eo
输入
Once upon a time,there lived a manwhose name wos Lip van Winkle.
输出
8 e

使用以下代码雏形

 #include<stdio.h>

int main(void)
{
    int i,max=0;
    char ch;
    int check['z'-'a']={};
    while(scanf("%c",&ch)!=-1){
        if('a'<=ch&&ch<='z') check[ch-'a']++;
        if('A'<=ch&&ch<='Z') check[ch-'A']++;
    }
    /*填补这一段代码*/

    printf("%d",max);
    for(i=0;i<'z'-'a';i++){
        if(check[i]==max) printf("%c",i+'a');
    }
    printf("\n");
    return 0;
}

不胜感激

1个回答

qq423399099
qq423399099   Ds   Rxr 2016.05.12 10:19
已采纳
  #include<stdio.h>

int main(void)
{
    int i,max=0;
    char ch;
    int check['z'-'a']={0};
    while(scanf("%c",&ch)!=-1){
        if('a'<=ch&&ch<='z') check[ch-'a']++;
        if('A'<=ch&&ch<='Z') check[ch-'A']++;
    }
    /*填补这一段代码*/
    for(i=0;i<'z'-'a';i++){
        if(check[i]>check[max]) max=i;
    }
    printf("%d %c\n", check[max], 'a'+ max);
    return 0;
}

图片说明

gsxab
gsxab 弱弱的说一句,出现字符Z/z时候数组check越界了;-)可能被题主少一个的声明拐进去了XD
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!