非常简单的一题,运用桶排序理解法,员工数很大,工龄范围在[0, 50]。

以工龄创建每个桶,将每个员工工龄归为不同桶。

 

给定公司N名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。

输入格式:

输入首先给出正整数N10​^5​​),即员工总人数;随后给出N个整数,即每个员工的工龄,范围在[0, 50]。

输出格式:

按工龄的递增顺序输出每个工龄的员工个数,格式为:“工龄:人数”。每项占一行。如果人数为0则不输出该项。

输入样例:

8
10 2 0 5 7 2 5 2

输出样例:

0:1
2:3
5:2
7:1
10:1

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int N,workAge;
 6     int workYear[55] = {0};
 7     scanf("%d",&N);
 8     for(int i = 0; i < N; i++) {
 9         scanf("%d",&workAge); 
10         workYear[workAge]++;
11     }
12     for(int i = 0; i < 51; i++) {
13         if(workYear[i])
14             printf("%d:%d\n", i, workYear[i]);            
15     }
16     return 0;    
17 } 

 

 
posted on 2016-05-08 23:02  kuotian  阅读(395)  评论(0编辑  收藏  举报