众数问题
来源:互联网 发布:随身带着淘宝去异世txt 编辑:程序博客网 时间:2024/05/18 02:58
众数问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
所谓众数,就是对于给定的含有N个元素的多重集合,每个元素在S中出现次数最多的成为该元素的重数,
多重集合S重的重数最大的元素成为众数。例如:S={1,2,2,2,3,5},则多重集S的众数是2,其重数为3。
现在你的任务是:对于给定的由m个自然数组成的多重集S,计算出S的众数及其重数。
- 输入
- 第一行为n,表示测试数据组数。(n<30)
每组测试的第一行是一个整数m,表示多重集S中元素的个数为m
接下来的一行中给出m(m<100)个不大于10万的自然数
(不会出现不同元素出现的次数相同的情况,如:S={11,11,22,22,33,33})。 - 输出
- 每组测试数据输出一行,包含两个数,第一个是众数,第二个是其重数,中间以空格隔开。
- 样例输入
161 2 2 2 3 5
- 样例输出
2 3
01.
#include <stdio.h>
02.
#include <stdlib.h>
03.
int
a[100],b[100];
04.
int
cmp(
const
void
*a,
const
void
*b)
05.
{
06.
return
*(
int
*)a-*(
int
*)b;
07.
}
08.
int
main()
09.
{
10.
int
n;
11.
scanf
(
"%d"
,&n);
12.
while
(n--)
13.
{
14.
int
m,i,j;
15.
scanf
(
"%d"
,&m);
16.
for
(i=0;i<m;i++)
17.
{
18.
scanf
(
"%d"
,&a[i]);
19.
}
20.
qsort
(a,m,
sizeof
(
int
),cmp);//从小到大排序
21.
for
(i=0;i<m;i++)
22.
{
23.
b[i]=1;
24.
for
(j=i+1;j<m;j++)
25.
{
26.
if
(a[i]==a[j])
27.
{
28.
b[i]++;//用数组记录数出现的次数
29.
a[j]=0;
30.
}
31.
32.
}
33.
34.
}
35.
int
max=0;
36.
for
(j=0;j<i;j++)
37.
{
38.
if
(b[j]>b[max])
39.
{
40.
max=j;//找出数组中出现次数最多的 那个数
41.
}
42.
}
43.
printf
(
"%d %d\n"
,a[max],b[max]);
44.
}
45.
return
0;
46.
}
0 0
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- C#计算float类型数据求和不精确问题
- R语言ggplot2包之注释
- CF 558A Lala Land and Apple Trees
- 冒泡事件和预览事件(隧道事件)
- RMQ——ST算法
- 众数问题
- ViewFlipper
- bj java 初学2015-07-22
- 多线程_线程概述&实现方法一&线程状态&实现方法二
- Eclipse. The archive which is referenced by the classpath, does not exist
- 暑假-动态规划 I-(Q - Washing Clothes)
- leetCode(47):Triangle
- linux与Windows FTP交互
- NDK 与 JNI 的关系