|
4 | 2
5 | 8
7 | 9
14 | 45
33 | 53
56 | 64
77 | 88
98
a.txt | b.txt
という2つのファイルをあわせてソートさせて表示させるプログラムを書けって言う問題があるのですが・・・自分でやってみたのは以下のものなんですけど結果が一行目しか比較せずに2と出力されてしまうのですがなぜでしょう・・・
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp,*fp2;
char buf[128],buf2[128];
int a,b;
fp=fopen("a.txt","r");
fp2=fopen("b.txt","r");
fgets(buf,128,fp);
sscanf(buf,"%d",&a);
fgets(buf2,128,fp2);
sscanf(buf2,"%d",&b);
while(fgets(buf,128,fp)!=NULL || fgets(buf2,128,fp2)!=NULL){
while(fgets(buf,128,fp)!=NULL && (fgets(buf2,128,fp2)==NULL || a<=b)){
printf("%d\n",a);
fgets(buf,128,fp);
sscanf(buf,"%d",&a);
}
while(fgets(buf2,128,fp2)!=NULL && (fgets(buf,128,fp)==NULL || a>=b)){
printf("%d\n",b);
fgets(buf2,128,fp2);
sscanf(buf2,"%d",&b);
}
}
fclose(fp);
fclose(fp2);
return 0;
}
|