九度OJ—题目1057:众数

题目描述:

输入20个数,每个数都在1-10之间,求1-10中的众数(众数就是出现次数最多的数,如果存在一样多次数的众数,则输出权值较小的那一个)。

输入:

测试数据有多组,每组输入20个1-10之间的数。

输出:

对于每组输入,请输出1-10中的众数。

样例输入:
5 1 5 10 3 5 3 4 8 6 8 3 6 5 10 7 10 2 6 2 
样例输出:
5
来源:
2011年哈尔滨工业大学计算机研究生机试真题
答疑:
解题遇到问题?分享解题心得?讨论本题请访问: http://t.jobdu.com/thread-7781-1-1.html

#include <iostream>
using namespace std;
int main()
{
    int i,k,max,a[21];
    while(cin>>a[0])
    {
        max=0;
        int b[11]={0};
        for(i=1;i<20;i++)
            cin>>a[i];
        for(i=0;i<20;i++)
            b[a[i]]++;
        for(i=1;i<11;i++)
        {
            if(max<b[i])
            {
                max=b[i];
                k=i;
            }
        }
        cout<<k<<endl;
    }
    return 0;
}
 
 
/**************************************************************
    Problem: 1057
    User: vhreal
    Language: C++
    Result: Accepted
    Time:10 ms
    Memory:1520 kb
****************************************************************/


你可能感兴趣的:(众数,九度OJ,题目1057)