time limit :1000 msmemorylimit 336065536 kib
Problem Description
众数是指在一组数据中,出现次数最多的数量。 例如,如果1、1、3中出现次数最多的数为1,则最频密数为1。
能给一组数,求出众数吗?
Input
输入数据有多组(数据组数为50以下),以EOF结束。
各组数据:
在第一行中输入整数n(1=n=10000 ),表示数量。
在第二行中,输入n个用空格分隔的整数AI,按顺序表示每个数。
Output
对于每个组中的数据,在一行中输出整数,以表示组中数据的众数。
数据保证有唯一的大众数量。
Sample Input
3
1 1 3
5
0 2 3 1 2
Sample Output
1
2
Hint
来源
蓝色的
本题要抓住关键信息,所有的数都是“0”到“1000”的数,所以只要统计输入的“0”到“1000”各个数出现的次数:即下面b数组中的数据即为各个数的出现次数,再找出其中的最大次数对应的数:即下面b数组的下标“i”
# include stdio.h # include stdlib.hint main () { int a,n; int i,k; while(~scanf('%d ',n ) ) { int b[1001]={0},max=0; for(I=0; in; I )扫描(' % d ',a ); b[a];/*对从“0”到“1000”的对应数量出现的次数进行计数。 例如,若输入54,则在“b[54]”上加上“1”,最后设为b[54]=3,则在54上输入了3次*/}for(I=0)。 i=1000; 查找I//最大次数{if(b[I]max ) { max=b[i]; k=i; //标记其下标}printf('%d(n ),k ); }返回0; } 311315023122 ^ zprocessreturned0(0x0)执行时间:6.971 spressanykeytocontinue。