题目描述
给出N个1到 30000 间无序数正整数,其中 1≤N≤10000,同一个正整数可能会出现多次,出 现次数最多的整数称为众数。求出它的众数及它出现的次数。如果有多个出现次数相同的数,按数值从小到大依次输出。
输入
第一行是正整数的个数 N
第二行开始为 N 个正整数。
输出
输出若干行,每行两个数,第 1 个是众数,第 2 个是众数出现的次数。两个数之间用两个空格隔开
样例输入
12 2 4 2 3 2 5 3 7 2 3 4 3
样例输出
2 4 3 4
这题的思路:输入一个数,直接定义一个数组累加。
#include <stdio.h>
int b[30010];
int main(){
int n,max=0,a;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a);
b[a]++;
}
for(int i=0;i<=30000;i++){
if(max<b[i]){
max=b[i];
}
}
for(int i=0;i<=30000;i++){
if(b[i]==max){
printf("%d %d\n",i,b[i]);
}
}
}