data1.text に 2 つの並べ替えられたシーケンスがあり、data2.txt にもう 1 つ、両方に 20 のソート番号が含まれています。両方の txt から数値を読み取り、同時にそれらを比較して、小さい方を sort.txt に出力するコード sort.c を作成する必要があるため、並べ替えをマージするようなものです)
それは私のコードです:
#include <stdio.h>
int main(int argc,char *argv1[],char *argv2[],char *argv3[])
{
char *f1 = argv1[1];// taking filename1 from args
char *f2 = argv2[1];// taking filename2 from args
char *f3 = argv3[1];// taking filename2 from args
FILE *fp1,*fp2,*fp3;
fp1 = fopen(f1,"r");
fp2 = fopen(f2,"r");
fp3 = fopen(f2,"w");// sort.txt file so 'w'
int num1,num2;
fscanf (fp1, "%d", &num1);
fscanf (fp2, "%d", &num2);
while (!feof(fp1) && !feof(fp2)) {
if (num1<num2)
{
fprintf(fp3,"%d\t",num1);// print num 1
fscanf (fp1, "%d", &num1); // read num1
}
else{
fprintf(fp3,"%d\t",num2);
fscanf (fp2, "%d", &num2); // read num2
}
}
if (!feof(fp1))
{
while (!feof(fp1))
{
fprintf(fp3,"%d\t",num1);// print num 1
fscanf (fp1, "%d", &num1); // read num1
}
}
else
{
while (!feof(fp2))
{
fprintf(fp3,"%d\t",num2);
fscanf (fp2, "%d", &num2); // read num2
}
}
fclose(fp1);// closing file f1
fclose(fp2);// closing file f2
fclose(fp3);// closing file f2
return 0;
}
セグメンテーション違反を示しています =(