用c语言提取文件数字

编写一个程序,从data.txt文件中读取一批无序的数字,按降序排列后再写到新文件dataNew.txt文件中。

代码如下,如有帮助,请帮忙采纳一下,谢谢。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXNMB 10000 //假设最多可以存储10000个数字

int main()
{
    int i,j;
    double a[MAXNMB],t;
    char tmp[10];
    int nmb = 0; //实际数量
    FILE* fp;
    if((fp=fopen("data.txt","r"))==0)
    {
        printf("data.txt打开失败\n");
        return 0;
    }
    //读取数据
    while(!feof(fp))
    {
        memset(tmp,0,10);
        fgets(tmp,10,fp); //假设每个数字一行
        if(strlen(tmp) > 0) //消除空行的影响
            a[nmb++] = atof(tmp);
    }
    fclose(fp);

    //排序
    for (i=0;i<nmb-1;i++)
    {
        for (j=0;j<nmb-i-1;j++)
        {
            if(a[j] < a[j+1])
            {
                t = a[j];
                a[j] = a[j+1];
                a[j+1]=t;
            }
        }
    }

    //写文件
    fp = fopen("dataNew.txt","w");
    for(i=0;i<nmb;i++)
        fprintf(fp,"%g\n",a[i]);

    fclose(fp);
    return 0;
}