统计数字
【问题描述】
某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
【基本要求】
原始数据保存在文件count.in中,文件包含n+1行。第1行是整数n,表示自然数的个数;第2~n+1行每行一个自然数。
结果保存在文件count.out中,文件count.out包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
【测试数据
由于数据量可能很大,要注意程序的运行效率。
【实现提示】
1) 自己建立输入文件count.in。使用TC或VC或Word等编辑器等编辑样例输入内容,按文本格式存盘。程序从该文件中读取数据处理,最后将结果写入文件count.out中。
2)定义结构体类型,说明结构体数组,记录自然数和该数出现的次数。定义如下:
struct
{
long int number;
long int count;
} num[10000];
3)从文件中每读出一个数据,就在数组中查找,若存在,则该数出现次数增1,否则将该数插入数组中,出现次数为1,插入后使数组中的数据按自然数有序。