标题:编一个程序,合并两个已按递增排序的整数文件成一个按递增排序文件。
取消只看楼主
D2284581470
Rank: 3Rank: 3
来 自:沈阳
等 级:论坛游侠
威 望:2
帖 子:169
专家分:147
注 册:2019-12-8
结帖率:58.33%
 问题点数:0 回复次数:4 
编一个程序,合并两个已按递增排序的整数文件成一个按递增排序文件。
【问题描述】编一个程序,合并两个已按递增排序的整数文件成一个按递增排序文件。
【输入形式】输入两个文件,文件名分别为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
【样例说明】
【评分标准】


麻烦各位大神呀🙏🙏🙏
搜索更多相关主题的帖子: 排序 递增 txt 文件 整数 
2019-12-27 16:43
D2284581470
Rank: 3Rank: 3
来 自:沈阳
等 级:论坛游侠
威 望:2
帖 子:169
专家分:147
注 册:2019-12-8
得分:0 
程序代码:
#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;
}
2019-12-27 16:46
D2284581470
Rank: 3Rank: 3
来 自:沈阳
等 级:论坛游侠
威 望:2
帖 子:169
专家分:147
注 册:2019-12-8
得分:0 
2019-12-27 16:49
D2284581470
Rank: 3Rank: 3
来 自:沈阳
等 级:论坛游侠
威 望:2
帖 子:169
专家分:147
注 册:2019-12-8
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int temp;
    int i, j = 0, k = 0, j1 = 0;
    int a[100] = { 0 };
    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("打开文件失败\n");
        getchar();
        exit(1);
    }
    for (i = 0; !feof(fp); i++)
    {
        fscanf(fp, "%d", &a[i]);
        j1 = i;
    }
    for (j=j1+1; !feof(fq); j++)
    {
        fscanf(fq, "%d", &a[j]);
        k = j;
    }
    for (i = 0; i < k+1; i++)
    {
        for (j = 0; j < k - i; j++)//至于为什么k不减去1 是因为这里的k代表的不是数组下标
        {
            if (a[j] > a[j + 1])
            {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }
    for (i = 0; i < k+1; i++)
    {
        fprintf(pr, "%d ", a[i]);
    }
    fclose(fp);
    fclose(fq);
    fclose(pr);
    getchar();
    return 0;
}

2019-12-27 20:51
D2284581470
Rank: 3Rank: 3
来 自:沈阳
等 级:论坛游侠
威 望:2
帖 子:169
专家分:147
注 册:2019-12-8
得分:0 
这是答案
2019-12-27 20:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498683-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020774 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved