为了账号安全,请及时绑定邮箱和手机立即绑定

这个错在哪里了 为什么运行结果不符?

这个错在哪里了 为什么运行结果不符?

C
qq_乄朩_04191119 2016-11-09 20:39:08
#include<stdio.h>int main( ){        int a[26],max,n,i;        a[26]=0;        max=0;        char c;        scanf("%d",&n);        for(i=0;i<n;i++)        {                scanf("%c",&c);                a[c-'a']++;        }        for(i=1;i<26;i++)        {                if(a[max]<a[i])                        max=i;        }        printf("%c\n",max+'a');        return 0;}
查看完整描述

3 回答

已采纳
?
qq_雪夜_1

TA贡献4条经验 获得超1个赞

// 看你代码的意思,应该是输入统计n个字符中,哪个字母出现最多。
#include<stdio.h>
int main( )

{
        int a[26]={0},max,n,i;
        //a[26]=0;如果你想每个赋初值可以在声明的同时初始化,对数组a来说,下标是0-25,26会下标越界
        max=0;
        char c;
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
                scanf("%c",&c);
                a[c-'a']++;
        }
        for(i=1;i<26;i++)
        {
                if(a[max]<a[i])
                        max=i;
        }
        printf("%c\n",max+'a');
        return 0;
}


查看完整回答
反对 回复 2016-11-10
?
大千纷繁世界

TA贡献3条经验 获得超1个赞

可以问下,你要达到什么目的?而且你数组还没有赋值,怎么比较?逻辑比较混乱。
查看完整回答
反对 回复 2016-11-09
?
一叶追寻

TA贡献38条经验 获得超23个赞



数组下标越界,int a[26];这是一个整型的数组a,有26个元素:a[0]-a[25],因为正确的下标应该是从0开始,到25结束

查看完整回答
反对 回复 2016-11-09
  • 3 回答
  • 0 关注
  • 1384 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信