CSP

2013_12_CSP_1

出现次数最多的数

Posted by clever on December 14, 2020

CSP考试2013.12第一题

出现最多次数的数

2013_12_1.PNG

解答代码如下:

#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;
}