数字统计

题目描述

某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。

程序输入说明

输入包含n+1行:
第1行是整数n,表示自然数的个数。
第2~n+1行每行一个自然数。

程序输出说明

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

程序输入样例

8
2
4
2
4
5
100
2
100

程序输出样例

2 3
4 2
5 1
100 2
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 using namespace std;
 6 
 7 int count = 0;
 8 int b[10005],c[10005];
 9 
10 int main(){
11     int n;
12     cin>>n;
13     int a[n];
14     for( int i = 0; i < n; i++ )
15         cin>>a[i];
16     sort(a,a+n);
17     int j = 0,k = 0;
18     for( int i = 0; i < n; i++ ){
19         if( a[i] == a[i+1] )
20             b[j]++;
21         if( a[i] != a[i+1] ){
22             c[k++] = a[i];
23             j++;
24         }
25     }
26     for( int i = 0; i < k; i++ ){
27         cout<<c[i]<<" "<<b[i]+1<<endl;
28     }
29     return 0;
30 } 

原文地址:https://www.cnblogs.com/geziyu/p/10152630.html