トーナメントに参加していますが、文字列の並べ替えに問題があります。ここで私は状況を説明しようとします:
「ある男性が、英語と同じ文字を使用した未知の言語で書かれた大きな本を発見しました。その本には短い索引が含まれていましたが、索引内の項目の順序は、文字が順序付けられている場合に予想される順序とは異なっていました。英語のアルファベットと同じ方法. コレクターはインデックスを使用して、奇妙なアルファベットの文字の順序 (つまり、照合シーケンス) を決定しようとし、その後、彼はこの作業を開始しました。
もちろん、その人を助けるプログラムを作らなければなりません。入力として、ユーザーに一連の文字を尋ねる必要があります (この問題は既に解決済みです)。各文字列には最大 20 文字が含まれます。すべての文字が必ずしも使用されるわけではありませんが、リストは使用される文字の完全な順序付けを意味します。
私はこのコードを書きました:
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main(void){
int i,c,j,p=0,k=0;
printf("How many strings do you need? \n");
scanf("%d", &c); //number of columns for the matrix
// input
char a[20][c];
for(i=0;i<c;i++){
printf(" ----- String number %d -----\n",i+1);
for(j=0;j<20;j++){
scanf("%c", &a[j][c]);
if (a[j][c]==' ')
{break;}
}
}
//output
printf(" \n");
printf(" ----- Results ----- \n");
printf("%c", a[0][0]);
for(p=1;p<c;p++)
{
if(a[k][p]=!a[k][p-1])
{printf("%c", a[k][p]);}
}
getch();
return 0;
}
正しい出力が得られないため、最後のループに問題があります。ユーザーが次のように入力した場合 (例):
XWY ZX ZXY ZXW YWWX
私の出力は「XZYW」でなければなりません。誰か提案はありますか?