c语言求统计数字代码

某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
2.2【基本要求】
原始数据保存在文件count.in中,文件包含n+1行。第1行是整数n(1<=n<=200000),表示自然数的个数;第2~n+1行每行一个自然数。
结果保存在文件count.out中,文件count.out包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
【测试数据】
count.in count.out
8
2
4
2
4
5
100
2
100 2 3
4 2
5 1
100 2
由于数据量可能很大,要注意程序的运行效率。
2.3【实现提示】

  1. 自己建立输入文件count.in。使用TC或VC或Word等编辑器等编辑样例输入内容,按文本格式存盘。程序从该文件中读取数据处理,最后将统计结果写入文件count.out中。
    2)定义顺序表,元素类型为:Element,顺序表类型为:SeqList,用顺序表的数组data记录自然数和该数出现的次数。定义如下:
    typedef struct data{
    long int number;
    long int count;
    
    } Element;
    typedef struct list{
    Element data[10000]; /存储自然数和该数出现的次数/
    int length; /存储不同自然数的个数,即顺序表的长度/
    } SeqList;
    3)从文件中每读出一个数据,就在顺序表中查找,若存在,则该数出现次数增1,否则将该数插入数组中,出现次数为1,插入后使顺序表中的数据按自然数有序。