如何从我创建的这个文件中读取8个整数并按照降序排序数组中的数字,最后将这些排序的数字写入新的文本文件?

img

img


这个新文件的名称是2237010314,这八个整数便是我输入到数组中的8个数字

输入的数据用数组存储,不然排序的时候不好排序。
运行结果:

img

代码:

#include <stdio.h>
#include <stdlib.h>
#define FILENAME "269863.txt"

int main(void)
{
    FILE* fp;
    int a[8],i,j,t,b[8]; //为了检查读取是否成功,这里用b数组来读取,避免键盘读取的数组对结果产生影响
    fp=fopen(FILENAME,"w");
    if(fp==NULL)
    {
        printf("can't open the file");
        exit(EXIT_FAILURE);
    }
    printf("enter 8 integers:");
    for(i=0;i<8;i++)
    {
        scanf("%d",&a[i]);
        if(i<7)
            fprintf(fp,"%d ",a[i]);
        else
            fprintf(fp,"%d",a[i]);
    }
    fclose(fp);
    fp = fopen(FILENAME,"r");
    if(fp==NULL)
    {
        printf("can't open the file");
        exit(EXIT_FAILURE);
    }
    //读取
    for(i=0;i<8;i++)
        fscanf(fp,"%d",&b[i]);

    fclose(fp);
    //降序排序
    for(i=0;i<7;i++)
    {
        for(j=0;j<7-i;j++)
        {
            if(b[j]<b[j+1])
            {
                t = b[j];
                b[j] = b[j+1];
                b[j+1]=t;
            }
        }

    }
    //写入文件
    fp = fopen("2237010314.txt","w");
    for(i=0;i<8;i++)
    {
        if(i<7)
            fprintf(fp,"%d ",b[i]);
        else
            fprintf(fp,"%d",b[i]);
    }
    fclose(fp);
    return 0;
}

你提供的代码是要按照这个框写吗?还是可以重新写?

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632