【问题描述】
输入若干个整数,统计出现次数最多的那个整数。如果出现最多的整数有两个以上,打印最早输出的那个整数。
【输入形式】
第一行一个数字N(1<=N<=10000),代表整数的个数。
以后的N行每行有一个整数。
【输出形式】
向标准输出打印出现次数最多的那个数字。
【输入样例】
6
11
0
-1
20
0
300
【样例输出】
0
//2020/4/4
#include<stdio.h>
struct Node
{
int data;
int count;
};
const int maxn = 10010;
Node A[maxn];
int ci = 0;
int ans_count = 0;
int n;
int find(int data)
{
int i;
for(i = 0;i<ci;i++)
{
if(data == A[i].data)
{
break;
}
}
if(i == ci)
return -1;
else
return i;
}
int main()
{
int i,j;
scanf("%d",&n);
for(i = 0;i<n;i++)
{
int tmp;
int index;
scanf("%d",&tmp);
index = find(tmp);
if(index != -1)
{
A[index].count++;
if(A[index].count > ans_count)
ans_count = A[index].count;
}
else
{
A[ci].data = tmp;
A[ci].count = 1;
ci++;
}
}
for(i = 0;i<ci;i++)
{
if(A[i].count == ans_count)
{
printf("%d\n",A[i].data);
break;
}
/*printf("%d %d\n",A[i].data,A[i].count);*/
}
return 0;
}