首页 > 代码库 > 数字统计
数字统计
转载请标明出处:牟尼的专栏 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 100000 struct 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
数字统计
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。