こんにちは!私は最長共通サブシーケンスの問題を解決しようとしています、そして、私は問題そのものとは何の関係もない問題にぶつかっています。 私のプログラムは正しい最終結果を示していないと思います。なぜなら、両方のシーケンスを正しく読み取っていないからです。ファイルから正しく読み取る方法
1つのファイルからシーケンスを読み込むメイン関数のコードです。 2番目のシーケンス)、ここに私はエラーがあると信じています。
int main(){
FILE *file;
char c;
int m=0, n=0, flag=0;
file=fopen("test.txt","r");
if(file==NULL){
printf("Error opening file.\n");
exit(0);
}
if(file){
while((c=fgetc(file))!=EOF){
if(c!=' ' && c!='\n' && flag==0)
m++;
if(c=='\n')
flag=1;
if(c!=' ' && c!='\n' && flag==1)
n++;
}
}
char X[m], Y[n];
int i=0;
if(file){
while((c=fgetc(file))!=EOF){
if(c!=' ' && c!='\n' && flag==0){
i++;
X[i]=c;
}
if(c=='\n'){
flag=1;
i=0;
}
if(c!=' ' && c!='\n' && flag==1)
i++;
Y[i]=c;
}
}
int j;
for(i=0;i<m;i++){
printf("%c | %c",X[i],Y[i]);
}
printf("Length of LCS is %d .\n", lcs(X, Y, m, n));
return 0;
}
これは、イムは最初のシーケンスを印刷するとき、それは返すものです。 | 7 | É| Ŭ| ©| È| ³| | |
ごめんなさい。 は
注: 'char c; ... while((c = fgetc(file))!= EOF){'、' int c; 'を使うのが最適です。 – chux