迴圈

輸入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;
}

arrow
arrow
    全站熱搜

    大神(偽) 發表在 痞客邦 留言(0) 人氣()