題目描述
給定含有n個元素的多重集合S,每個元素在S中出現的次數稱為該元素的重數。多重集S中重數最大的元素稱為眾數。
例如,S={1,2,2,2,3,5}。多重集S的眾數是2,其重數為3。
編程任務:
對于給定的由n 個自然數組成的多重集S,編程計算S 的眾數及其重數。
輸入:第1行多重集S中元素個數n(n<=50000);接下來的n 行中,每行有一個自然數。
輸出:輸出文件有2 行,第1 行給出眾數,第2 行是重數。(如果有多個眾數,只輸出最小的)
樣例輸入?Copy
6 1 2 2 2 3 5
樣例輸出?Copy
2 3
程序代碼
#include<stdio.h>
int main(){int n;scanf("%d",&n);//輸入有多少個元素int x;//x為每次輸入的數int a[10000]={0};//定義一個數組afor(int i=0;i<n;i++){scanf("%d",&x);a[x]++;}int max=0,m;//max用來表示眾數m用來表示重數for(int i=0;i<10000;i++){if(max<a[i]){max=a[i];m=i;}}printf("%d\n%d",m,max);return 0;
}