数字排序文件合并
【问题描述】编一个程序,合并两个已按递增排序的整数文件成一个按递增排序文件。
【输入形式】输入两个文件,文件名分别为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; }