题意:给出一组数,求众数,按升序输出
分析:只考众数的概念,但是一直没有搞清楚
众数:一组数中出现次数最多的数,假如所有数据的出现次数都一样,那么这组数据没有众数。(注意:数组中只有一个数的话众数就是它本身)
AC
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include <vector>
typedef long long ll;
using namespace std;
const int M = 10000;
int sum[10100];
vector<int> v;
int main()
{
int T;
scanf("%d",&T);
for(int cas=1; cas<=T; cas++)
{
memset(sum,0,sizeof(sum));
int n,x;
scanf("%d",&n);
for(int i=0; i<n; i++)
{
scanf("%d",&x);
int tmp=10000 - (100 - x)*(100 - x);
sum[tmp]++;
}
int ma=max_align_t(sum);
for(int i=0; i<=M; i++)
ma=max(ma,sum[i]);
for(int i=0; i<=M; i++)
{
if(sum[i]==ma)
v.push_back(i);
}
printf("Case #%d:\n",cas);
if(v.size()*sum[v[0]] == n && v.size()!=1)
puts("Bad Mushroom");
else
{
for(int i=0;i<v.size();i++)
printf("%d%c",v[i],i==(v.size()-1)?'\n':' ');
}
v.clear();
}
return 0;
}