CSP考试2013.12第一题
出现最多次数的数
解答代码如下:
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;//输入的个数
cin >> n;
int s[n]; //存放输入的数组
for(int i=0; i<n;i++)
{
cin >> s[i];
}
sort(s, s+n); //升序排序
int num = s[0],num_times=1,max_times=1,max_num = s[0];
//当前整数与当前整数出现的次数; 出现次数最大的整数与其出现次数
for(int i=1;i<n;i++)
{
if(s[i]!=num)
//若新整数出现,刷新整数次数为1;若旧整数出现次数大于目前出现次数最大的整数,更新出现次数最多的整数与其出现次数
{
if(num_times > max_times) max_num = num,max_times = num_times;
num = s[i];
num_times = 1;
}
else num_times++; //否则旧整数次数+1
}
if(num_times > max_times) max_num = num,max_times = num_times;//处理最后一次更新
cout << max_num;//输出出现次数最大的整数
return 0;
}