解题思路:

注意事项:

参考代码:

#include<stdio.h>

#define N 50001

typedef struct SNum{

    int s;                      //元素的值

    int t;                      //元素在多重集合中出现的次数

}Num;

Num S[N];

int main(){

    int n,s,i,v,m=0,c=0;

    scanf("%d",&n);

    while(n--){                 //n行中

        scanf("%d",&s);         //每行一个自然数

        for(i=0;i<c;i++){       //寻找集合S

            if(s==S[i].s){      //若s在集合S中出现过

                S[i].t++;       //出现的次数加1

                if(S[i].t>m)    //若出现次数最多

                    m=S[i].t;   //更新众数的重数

                break;

            }

        }

        if(i==c){               //若s在集合S中还未出现过

            S[c].s=s;           //将s添加到S中

            S[c].t=1;           //出现了1次

            c++;                //集合S中有c个元素

        }

    }

    v=0x7fffffff;

    for(i=0;i<c;i++){           //在集合S中寻找

        if(S[i].t==m&&S[i].s<v) //最小的众数

            v=S[i].s;

    }

    printf("%d\n%d\n",v,m);

    return 0;

}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论