梦凡


私信TA

用户名:fan123456

访问量:1425

签 名:

等  级
排  名 1651
经  验 2724
参赛次数 4
文章发表 17
年  龄 0
在职情况 学生
学  校 云天职教
专  业 软件技术与应用

  自我简介:

解题思路:

注意事项:

参考代码:

#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分

1 人评分

  评论区

  • «
  • »