Приведенный ниже код печатает всю возможную комбинацию данной строки. Он создает строки рекурсивно. Теперь я хочу сохранить каждую комбинацию в массиве, используя массив указателей на каждую строку. Как инициализировать указатель так, чтобы он указывал на строку. Код: -Сохранение строк в массиве
Input ABC
Output
ABC in b[0]
ACB in b[1]
BAC
BCA
CAB
CBA
и так далее.
спасибо :)
void permute(char *a, int i, int n)
{
int k=0;
char *b[100];
int j;
if (i == n)
{
// *b[k]=a;
printf("%s\n", a);
i++;
}
else
{
for (j = i; j <= n; j++)
{
swap((a+i), (a+j));
permute(a, i+1, n);
swap((a+i), (a+j)); //backtrack
}
}
}
Вы знаете, сколько комбинаций впереди? Вы хотите, чтобы массив был предварительно выделен или вы хотите, чтобы он был динамически распределен? Ты знаешь разницу? – AlexLordThorsen
Да будет n! комбинация строки. – user2456752