资讯动态

1201: 众数问题

发布时间:2026/10/28 1:13:41 来源:尧图企业网站定制
1201: 众数问题时间限制: 1 Sec 内存限制: 128 MB提交: 2044 解决: 1335[状态] [讨论版] [提交] [命题人:外部导入]题目描述给定含有n个元素的多重集合S每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如S{122235}。多重集S的众数是2其重数为3。编程任务对于给定的由n 个自然数组成的多重集S编程计算S 的众数及其重数。输入第1行多重集S中元素个数n(n50000)接下来的n 行中每行有一个自然数。输出输出文件有2 行第1 行给出众数第2 行是重数。(如果有多个众数只输出最小的)样例输入 Copy6122235样例输出 Copy23#includeiostreamusingnamespacestd;intmain(){ints;cins;intcount1;//记录重复的次数因为数在重复之前它本身也算上所以初始值是1重复一次count加一为2重复三次再加一为3intmin;//用min记录众数int*p(int*)malloc(s*sizeof(int));//分配内存for(inti0;is;i){cinp[i];//输入}for(inti0;is-1;i){//用冒泡排序从大到小排j0循环里最小的会被移动到s-i-1的位置上i0(p数组的倒数第一个); j2 第二小的就会被移动到s-i-1上i1(p数组的倒数第一个)intj;for(j0;js-1-i;j){if(p[j]p[j1]){inttempp[j];p[j]p[j1];p[j1]temp;}}if(p[j]mincount1)break;//若一个数大于min,并且count大于1说明之前已经有了一个比这么数小的众数了跳出循环if(p[j]p[j1]){minp[j];count;}}printf(%d\n%d,min,count);system(pause);}

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑