m0_60046886 2021-07-13 09:55 采纳率: 50%
浏览 104
已结题

用c语言提取文件数字

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

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-07-13 10:14
    关注

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

    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月14日
  • 已采纳回答 1月6日
  • 创建了问题 7月13日