问题描述
试题编号: | 201312-1 |
试题名称: | 出现次数最多的数 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 输出格式 输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。 样例输入 6 样例输出 10 |
#include <iostream>
using namespace std;
int main() {
int n,b;
cin >> n;
int amount[n]={0};//记录出现的数字
int number[n]={0};//记录数字对应次数
for (int i=0;i<n;i++){
cin >> b;
int repeat=0;//表面在第几个位置
for(int l=0;l<n;l++)
{
if(b==number[l])
amount[l]++;
else if(i!=0)
repeat++;
if(number[l+1]==0)
break;
}
if(amount[repeat]==0){
number[repeat]=b;
amount[repeat]++;
}
}
int min=number[0];
int max=0;
for(int j=0;j<n;j++){//选择出现最多且数字最小的数
if(amount[max]<amount[j]){
max=j;min=number[j];
}
if(amount[max]==amount[j]){
if(number[max]>number[j])
min=number[j];
}
}
cout<<min;
return 0;
}