迴圈
輸入n
輸入數字,並記錄數字出現次數
此處arr[i][0]為數字編號
arr[i][1]為出現次數
輸出與arr[0][1] (最大)相同之編號及次數
#include <iostream>
#include <algorithm>
#define MAX 30000
using namespace std;
int **arr;
int cmp(const void *addr1, const void *addr2)
{
const int *a = *(const int **)addr1;
const int *b = *(const int **)addr2;
return b[1] - a[1];
}
int main()
{
int n;
int *tmp, num;
int i;
while(cin >> n)
{
arr = new int* [MAX*sizeof(int) + 2*MAX*sizeof(int *)];
for(i = 0, tmp = (int *)(arr + MAX); i<MAX; i++, tmp += 2)
{
arr[i] = tmp;
arr[i][0] = i+1;
arr[i][1] = 0;
}
for(i = 0; i<n; i++)
{
cin >> num;
arr[num-1][1]++;
}
qsort(arr, MAX, sizeof(int *), cmp);
for(i = 0; arr[i][1] == arr[0][1]; i++)
cout << arr[i][0] << " " << arr[i][1] << endl;
delete []arr;
}
return 0;
}
留言列表