求出现次数最多的数

问题描述:
给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
输入格式
输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
输出格式
输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。
样例输入
6
10 1 10 20 30 20
样例输出
10

#include<iostream>
using namespace std;
int main()
{
    int x;
    struct shuzu{
        int z;
        int count;
    };

    shuzu a[1000];
    cin>>x;
    for(int i=0;i<=x-1;i++)
    {
        cin>>a[i].z;
    }
    for(int i=0;i<=x-1;i++)
    {
        int y=0;
        int count=0;
        while(y<=x-1)
        {
            if(a[i].z==a[y].z)
            {
                count++; 
            }
            y++;
        }
        a[i].count=count;
    }
    int max=0;  
    for(int i=0;i<=x-1;i++)
    {
        if(a[max].count<a[i+1].count)
        {
            max=i+1;
        }
        if(a[max].count==a[i+1].count)
        {
            if(a[max].z>a[i+1].z)
            {
                max=i+1;
            }       
        }
    }
    cout<<a[max].z;
}

测试结果:
这里写图片描述

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bug_move/article/details/52369859
个人分类: CCF
上一篇二叉树的创建与遍历
下一篇折点计数
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭