这个是在还没有学习STL之前写的,比较复杂,但思路很简单。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;//1 ≤ n ≤ 1000
cin>>n;
int array[n];
for(int i=0;i<n;i++)
cin>>array[i];
int fre[n];//出现次数
for(int i=0;i<n;i++)
fre[i] = 1;
int flag[n];//是否被数过 数过置为1
memset(flag,0,4*n);
//数出每个数字的出现次数
for(int i=0;i<n;i++){
if(!flag[i]){
for(int j=i+1;j<n;j++){
if(array[j]==array[i]){
fre[i]++;
flag[i] = 1;
}
}
}
}
//找到最多的 若有多个 找最小的
int max = fre[0];
int maxindex = 0;
for(int i=1;i<n;i++){
if(fre[i] > max){
max = fre[i];
maxindex = i;
}
else if(fre[i]==max && array[i]<array[maxindex]){
max = fre[i];
maxindex = i;
}
}
//输出
cout<<array[maxindex]<<endl;
return 0;
}