SDUTOJ 3400 - 數據結構實驗之排序三:bucket sort

Problem Description

根據人口普查結果,知道目前淄博市大約500萬人口,你的任務是幫助人口普查辦公室按年齡遞增的順序輸出每個年齡有多少人,其中不滿1週歲的按0歲計算,1到2週歲的按1歲計算,依次類推,大於等於100歲的老人全部按100歲計算。

Input

輸入第一行給出一個正整數N(<=5000000),隨後連續給出N個整數表示每個人的年齡,數字間以空格分隔。

Output

按年齡遞增的順序輸出每個年齡的人口數,人口數爲0的不輸出,每個年齡佔一行,數字間以一個空格分隔,行末不得有多餘空格或空行。

Sample Input

10
16 71 17 16 18 18 19 18 19 20

Sample Output

16 2
17 1
18 3
19 2
20 1
71 1

Hint

Source

xam

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
    int n;
    int age;
    int a[101];
    memset(a, 0, sizeof(a));
    scanf("%d", &n);
    for (int i = 0; i < n; i++){
        scanf("%d", &age);
        if (age > 100){
            a[100]++;
        }
        else{
            a[age]++;
        }
    }
    for (int i = 0; i < 101; i++){
        if (a[i] > 0){
            printf("%d %d\n", i, a[i]);
        }
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章