代码较长,且没注释,花了几个小时才写出来,累死了。。。你自己看看吧!
#include
int N,M;//N组数据,每组数据M个值
int a[100];
int A[100];
int b[100];
int result;
void ini()
{
int i;
for(i=0;i<100;i++)
{
A[i] = 1;
a[i] = 0;
b[i] = 0;
}
}
void input()
{
int i;
for(i=0;i
scanf(" %d",&a[i]);
}
}
void output(int m)
{
int i;
for(i=0;i
printf("%d ",a[i]);
}
printf("\n");
for(i=0;i
printf("%d ",A[i]);
}
printf("\n");
}
int f1()
{
int m = M;
int i,j,k;
for(i=0;i
for(j=i+1;j
if(a[i] == a[j]&&j < m-1)
{
for(k=j+1;k
a[k-1] = a[k];
}
A[i]++;
m--;
j--;
}
if(a[i] == a[j]&&j == m-1)
{
A[i]++;
m--;
j--;
}
}
}
return m;
}
int f2(int m)
{
int i,j = 0,k = 0;
int n = m;
int max = A[0];
for(i=1;i
if(max {
max = A[i];
}
}
//printf("%d\n",m);
//printf("%d\n",max);
while(j
if(max == A[j])
{
b[k] = a[j];
}
else
{
k--;
n--;
}
j++;
k++;
}
//printf("%d %d %d",b[k]);
return n;
}
int main()
{
int m,n,i,j = 1;
//printf("%d\n",A[10]);
scanf(" %d",&N);
while(j<=N)
{
ini();
scanf(" %d",&M);
input();
m = f1();
//output(m);
n = f2(m);
//printf("%d",n);
result = b[0];
for(i=1;i
if(result>b[i])
{
result = b[i];
}
}
printf("%d\n",result);
j++;
}
}
#include
#define M 1000
main()
{
int m;//几组数据
int T;
// int n;
int i;
int max;
scanf("%d",&m);
while(m--)
{
int a[M] ={0}; //存放每个数字的个数
int b[M]={0}; //存放输入的数字
scanf("%d",&T);//输入每一组有几行
for(i = 0; i < T; i++)
{
scanf("%d",&b[i]);
a[b[i]]++;
}
max =M-1;
for(i = M-1; i>=0; i--)
{
if(a[max] <= a[i])
max = i;
}
printf("%d\n",max);
}
}