题目描述
小南跟着导师进行科研调查,得到了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
标签:输出,10000,int,max,自然数,100,统计数字 From: https://www.cnblogs.com/messing1758954258/p/16996547.html