m0_63670854 2021-12-16 13:06 采纳率: 100%
浏览 45
已结题

C语言程序差最后的一步了,难受啊,请帮我看看吧

输入字符串,统计各小写字母出现的频次,输出出现频次最高的2个字母

  • 写回答

5条回答 默认 最新

  • 南七灵 2021-12-16 14:35
    关注
    
    #include <stdio.h>
    #include <string.h>
    int main()
    {
        int i, fre[26] = {0};
        char str[1024];
        gets(str);
        for(i = 0;i < strlen(str);i++){
            if(str[i] >= 'a' && str[i] <= 'z'){
                fre[str[i] - 'a'] ++;
            }
        }
        int max1 = fre[0],max2 = fre[0],m1 = 0,m2 = 0;
        for(i = 0;i < 26;i++){
            printf("%c:%d\n",i +'a',fre[i]);
            if(fre[i] >= max1){
                max2 = max1;
                m2 = m1;
                max1 = fre[i];
                m1 = i;
            }else if(fre[i] > max2){
                max2 = fre[i];
                m2 = i;
            }
        }
        printf("%c %c",m1 + 'a', m2 + 'a');
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 12月24日
  • 已采纳回答 12月16日
  • 创建了问题 12月16日