「已注销」 2022-01-04 08:55 采纳率: 50%
浏览 41
已结题

这是个程序题,实在是没有思路

动态内存分配-文件读写一要求
1、输入N
2、申请存放N个整数的内存
3、用100以内的随机数填充内存
4、将N个数写入文件
5、将文件中的N个数读入内存
6、对N个数排序
7、将排序后的N个数写入另一个文件

  • 写回答

2条回答 默认 最新

  • 关注

    运行结果:

    img

    代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    //冒泡排序
    void bubble_sort(int a[],int n)
    {
        int i,j,t;
        for (i=0;i<n-1;i++)
        {
            for (j=0;j<n-1-i;j++)
            {
                if(a[j] > a[j+1])  //从小到大,升序
                {
                    t = a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                }
            }
        }
    }
    
    int main()
    {
        int *a,i,n,m;
        FILE* fp;
        printf("请输入N:");
        scanf("%d",&n);
        a = (int*)malloc(n*sizeof(int));
        srand((unsigned int)time(NULL));
        //打开文件
        fp = fopen("a.txt","w"); //打开文件
        for(i=0;i<n;i++)
        {
            a[i] = rand()%100;  //生成0-100以内的数
            //写文件
            if(i<n-1)
                fprintf(fp,"%d ",a[i]);
            else
                fprintf(fp,"%d",a[i]);
        }
        fclose(fp);
        
        if((fp = fopen("a.txt","r"))==0)
        {
            printf("文件打开失败\n");
            free(a);
            a = 0;
            return 0;
        }
        m = 0;
        while(!feof(fp))
        {
            fscanf(fp,"%d",&a[m]); //这里使用m保存读取的数据个数,可以跟n对比一下,看看读取的是否正确
            m++;
        }
        fclose(fp);
        //排序
        bubble_sort(a,m);
        fp = fopen("b.txt","w");
        for(i=0;i<m;i++)
        {
            if(i<m-1)
                fprintf(fp,"%d ",a[i]);
            else
                fprintf(fp,"%d",a[i]);
        }
        fclose(fp);
        free(a);
        a = 0;
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 创建了问题 1月4日

悬赏问题

  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的