你的任务是找出一组数中出现次数最多和出现次数最少的数。
Input
多组输入。每组输入占两行
第一行一个数n(0<n<=10000)
第二行有n个数(-1000 <= ai <= 1000 )
Output
对于每组数据,在一行内输出出现次数最多和最少的数,两数之间用空格隔开。
如果有多个数字满足条件,输出最小的那个数。
Sample Input
12
1 2 3 2 4 2 3 4 5 1 3 4
5
1 2 3 4 5
2 5解题思路:这是不是看起来很简单啊,其实我告诉你这是一个很变态的题!死了无数细胞,还是别人教我的。1-要找出次数最大的数,必须统计数,并保存数值(很好的一个方法);2-开数组-1000--1000,直接a[2000]={0}(这也是我最初没想到的)3--找出最大数,并赋值
4--min=0.max=100000;看来要学的太多太多了!#include<stdio.h>
int main()
{ int a;
while(scanf("%d",&a)!=EOF)
{ int b,c,j,min,max;
int d[2000]={0};
for(b=0;b<a;b++)
{ scanf("%d",&c);
d[c+1000]++;
}
max=0,min=10000;
int i,k;
for(j=0;j<2000;j++)
{
if(max<d[j])
{ max=d[j];
i=j;
}
if(min>d[j]&&d[j]!=0)
{ min=d[j];
k=j;
}
}
printf("%d %d\n",i-1000,k-1000);}
return 0;}