用的最容易想到的方法,为什么通过率90%,请大神指教

//请路过的大神看一看,为什么通过率90%
#include<stdio.h>
main(){
    int n;
    scanf("%d",&n);
    int b[n][2];
    for(int i=0;i<n;i++){            //全部赋值为0
        for(int j=0;j<2;j++){
            b[i][j]=0;
        }
    }
    for(int i=0;i<n;i++){             //列下标为0 存每一个输入的数
        scanf("%d",&b[i][0]);
    }    
       
    for(int i=0;i<n;i++){              
        for(int j=0;j<n;j++){
            if(b[i][0]==b[j][0]){
                b[i][1]++; // 列下标为1 存每一个数出现的次数         
                        }
        } 
	}
    int maxIndex=0;
    for(int i=1;i<n;i++){
        if(b[i][1]>b[i-1][1]){
            maxIndex=i;                // 记录出现次数最多的数的下标
        }
    }
    printf("%d",b[maxIndex][0]);
}                                    

全部评论
最后的选最大值有问题,如果b[0][1]=10,b[1][1]=3,b[2][1]=5的话,在判断b[0][1]和b[1][1]的大小关系时,保持不变,但当判断b[1][1]和b[2][1]时,由于b[2][1]大于b[1][1],所以会把b[2][1]的值赋给maxIndex,这样结果就是出现了5次的数字,而不是出现10次的数字。
1 回复 分享
发布于 2020-11-28 09:39

相关推荐

哞客37422655...:兄弟别慌!💪 民办本找实习确实难点,但不是没机会。100+简历才2个面试,可能简历需要优化下: 项目经历写具体点,突出测试用例、bug数量等 技能栏把测试工具/方法论写清楚 可以考虑降低预期,先进小厂积累经验 测试岗相对好进,坚持投!现在才半个月,有人投3个月才上岸的😭 加油,offer在路上了🚀
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务