数字统计

来源:互联网 发布:2017多益网络笔试题目 编辑:程序博客网 时间:2024/06/02 22:10

转载请标明出处:牟尼的专栏 http://blog.csdn.net/u012027907

Problem2: 

题目描述: 

输入一组数据,统计每个数出现的次数,并按照数字的大小进行排序输出。 

输入: 

输入20个数字,数字之间用空格隔开。

 输出: 

统计每个数字出现的次数,并按数字的大小输出数字及其出现的次数.

 样例输入: 

20

9 8 5 1 7 2 8 2 9 10 1 7 8 9 5 6 9 0 1 9 

样例输出:

 0:1

 1:3

 2:2 

5:2

 6:1 

7:2 

8:3 

9:5 

10:1 


提示:类似于词频分析,简化了而已!


/* * 描述: 机试题A解答 * 作者: 张亚超  * 博客: 牟尼的专栏 http://blog.csdn.net/u012027907 * 日期: 2014/8/24 */#include <stdio.h>#include <algorithm>using namespace std;#define N 100000struct Nm{int num;   //数字int count; //个数bool operator < (const Nm &A)const{  //重载小于return num < A.num;}}Num[N];int main(){int n;int count = 0;while(scanf("%d",&n) != EOF){if(n == 0)break;int tmp;for(int i = 0; i < n; i++){scanf("%d",&tmp);for(int j = 0; j < count; j++){if(tmp == Num[j].num){   //若等于前面的某个数,则个数加一Num[j].count++;break;}}if( j >= count){            //若为新的数,则插入新节点Num[j].num = tmp;Num[j].count = 1;count++;}}sort(Num,Num+count);  //按数字排序for( i = 0; i < count; i ++)  //输出printf("%d:%d\n",Num[i].num,Num[i].count);printf("\n");}return 0;}
转载请标明出处:牟尼的专栏 http://blog.csdn.net/u012027907

2 0