4:数组-13
时间限制: 1 S | 内存限制: 8192 KB
Accept: 32 | Submit: 88
[提交] [讨论版]
描述
输入m个数字,输出其中出现次数最多的数字(可能有多个数字的出现次数并列第一多)
输入
一个正整数n,表示n组案例。
每组案例中,首先是一个正整数m,然后是m个整数。
输出
针对每组案例,输出这m个整数中,出现次数最多的数字。如果有多个数字出现次数并列最多,则按照从小到大的顺序输出这些数字,每个数字之间用一个空格间隔,最后一个数字之后没有空格。
每组案例输出完都要换行。
样例输入
1
5 1 2 4 1 4
样例输出
1 4
#include <iostream>
using namespace std;
int main()
{
int n, x;
int m, sum1;
cin >> n;
for (int i = 0; i < n; i++)//n组案例
{
cin >> m;
int a[100000] = { 0 };
for (int j = 0; j < m; j++)//输入一个数。让这个数的次数++
{
cin >> x;
a[x]++;
}
int max = 0;
int sum2 = 0;
for (int cj = 0; cj < 100000; cj++)//寻找出现次数最多的数
{
if (a[cj] >= max)
{
max = a[cj];
sum1 = max;
sum2 = cj;
}
}
for (int hj = 0; hj < 100000; hj++)//输出次数最多的数
{
if ((sum1 == a[hj]) && (hj != sum2))
{
cout << hj << " ";
}
}
cout << sum2 << endl;
}
return 0;
}