注册 登录
编程论坛 C语言论坛

数字排序文件合并

D2284581470 发布于 2019-12-27 14:43, 1601 次点击

【问题描述】编一个程序,合并两个已按递增排序的整数文件成一个按递增排序文件。
【输入形式】输入两个文件,文件名分别为1.txt和2.txt,在两个文件中分别输入已经排好序的整数,整数之间用单个空格隔开
【输出形式】输出按递增排好序的文件3.txt,输出文件中的整数用单个空格分隔
【样例输入】1.txt中内容为:1 3 4 5;2.txt中内容为:6 7 8
【样例输出】3.txt中内容为:1 3 4 5 6 7 8

【样例输入】1.txt中内容为:1 3 5;2.txt中内容为:2 4 6
【样例输出】3.txt中内容为:1 2 3 4 5 6
【样例说明】
【评分标准】

程序代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    int A,B;
    FILE *fp,*fq,*pr;
    if((fp=fopen("1.txt","r"))==NULL)
    {
        printf("打开文件失败1\n");
        getchar();
        exit(1);
    }
    if((fq=fopen("2.txt","r"))==NULL)
    {
        printf("打开文件失败2\n");
        getchar();
        exit(1);
    }
    if((pr=fopen("3.txt","w"))==NULL)
    {
        printf("打开文件失败3\n");
        getchar();
        exit(1);
    }
    A=fgetc(fp);
    B=fgetc(fq);
    while(A!=EOF && B!=EOF)
    {
        if(A<B)
        {
            fputc(A,pr);
            A=fgetc(fp);
        }else
        {
            fputc(B,pr);
            B=fgetc(fq);
        }
    }
    while(A!=EOF)
    {
        fputc(A,pr);
        A=fgetc(fp);
    }
    while(B!=EOF)
    {
        fputc(' ',pr);
        fputc(B,pr);
        B=fgetc(fq);
    }
    fclose(fp);
    fclose(fq);
    fclose(pr);
    getchar();
    return 0;
}

只有本站会员才能查看附件,请 登录
4 回复
#2
D22845814702019-12-27 14:46
最后两道题了,还是不会。
帮忙看一下呀
#3
D22845814702019-12-27 14:50
谢谢啦
#4
D22845814702019-12-27 15:02
救救我呀,有人吗
#5
D22845814702019-12-27 15:28
版主呀
1