众数

题目描述

给定一个长度为N的非降数列,求数列中出现次数最多的数。

如果答案不唯一,输出其中最小的数。

输入格式

输入数据第一行是一个整数T(1<=T<=100),表示测试数据的组数。注意各组测试数据是相互独立的。

对于每组测试数据:

第一行是一个正整数N(1<=N<=100 ),表示数列长度。

第二行有N个正整数,整数之间用空格隔开,所有的整数都不超过105,表示这个数列。

输出格式

对于每组测试数据,输出一个整数。

输入样例

2

4

1 1 1 2

5

1 1 2 2 3

输出样例

1

1

 

#include<iostream>
using namespace std;

struct num {
    int weight = 0;
    int count = 0;
}num[100];

int a[100];
int main() {
    int T,N,temp,max,j,minWeight;
    cin >> T;
    if (T > 100) {
        cout << "组数过多,请重新输入:";
        cin >> T;
    }
    while (T--) {
        cin >> N;
        for (int i = 0; i < N; i++) {
            cin >> temp;
            if (temp > 100000) {
                cout << "输入数值过大,请重新输入:" << endl;
                cin >> temp;
            }
            j = 0;
            bool flag = false;
            while (num[j].count != 0) {
                if (temp == num[j].weight) {
                    num[j].count++;
                    flag = true;
                }
                j++;
            }
            if (flag == false) {
                num[j].weight = temp;
                num[j].count++;
            }
        }

        max = 0;
        minWeight = 0;
        for (int i = 0; i < j; i++) {
            if (num[i].count > max) {
                max = num[i].count;
                minWeight = num[i].weight;
            }
            cout << minWeight<<endl;
        }
    }
    return 0;
}

 

posted @ 2018-03-27 16:31  Shaw_喆宇  阅读(278)  评论(0编辑  收藏  举报