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

用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日

悬赏问题

  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?
  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理