c++语言统计数字个数

xiaoxiao2021-02-28  54

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 

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

#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; int j; int i; for( i = 0; i < n; i++){ scanf("%d",&tmp); for( 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

转载请注明原文地址: https://www.6miu.com/read-56009.html

最新回复(0)