いくつかの投稿を読んだ後、私はまだ順列と再帰関数に困惑しています。最初の文字がセット {'l', 'm', 'n'} からのもので、2 番目の文字がセット {'q ', 'r'} で、3 番目の文字はセット {'a', 'e', 'i', 'o'} からのものです。私のコードは正しい順列パターンを通過しますが、正しい出力が出力されません。たとえば、最初の 8 つの順列が次のようになっているとします。
lqa
lqe
lqi
lqo
lra
lre
lri
lro
私のコードは次のように出力されます:
lqa
e
i
o
ra
e
i
o
問題が何であるかについてのアイデアはありますか?これが私のコードの関連部分です:
rec(character_pools,0,3);
void rec(char** pool, int k, int j)
{
if(k==j)
{
printf("\n");
return;
}
int i,len=strlen(pool[k]);
for (i=0;i<len;i++)
{
printf("%c",pool[k][i]);
rec(pool,k+1,j);
}
}