统计数字

题目描述

小南跟着导师进行科研调查,得到了n个自然数(1≤n≤200000),每个数均不超过1500000000(1.5*109),即long型。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。你能帮他编程实现吗? 


输入

单样例。每个测试文件只包含一组测试数据:
第一行是整数n,表示自然数的个数;
第2~n+1行,每行一个自然数。


 


输出

输出包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。


样例输入 Copy

8
2
4
2
4
5
100
2
100

样例输出 Copy

2 3
4 2
5 1
100 2
 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int max,max1,j=0,x=0,t,i,n,b[10000]={0};
 6     long int a[10000]={0},k;
 7     scanf("%d",&n);
 8     for(i=0;i<n;i++) 
 9     {
10         scanf("%ld",&k);
11         for(t=0;t<x;t++)
12         {
13             if(k==a[t])
14             {
15                 b[t]++;
16                 j=1;
17                 break;
18             }
19         }
20         if(j==0)
21         {
22             a[x]=k;
23             b[x]++;
24             x++;
25         }
26         j=0;
27     }
28     for(i=0;i<x-1;i++)
29     {
30         for(t=0;t<x-1;t++)
31         {
32             if(a[t]>a[t+1])
33             {
34                 max=a[t];
35                 a[t]=a[t+1];
36                 a[t+1]=max;
37                 max1=b[t];
38                 b[t]=b[t+1];
39                 b[t+1]=max1;
40             }
41         }
42     }
43     for(i=0;i<x;i++)
44     {
45         printf("%d %d\n",a[i],b[i]);
46     }
47     return 0;
48 } 
49 
50 
51     

 

 

posted on 2022-12-21 16:26  messing  阅读(82)  评论(0)    收藏  举报

导航