Я пытаюсь создать программу, которая по заданному слову может рассчитывать и распечатывать каждую комбинацию букв.
Чтобы быть более конкретным, меня просят использовать рекурсивную функцию, и я должен получить что-то вроде этого:
Заданное слово: ГЛАВНАЯ
EHOM
EMOH
MEHO
Подход, который я использую для замены содержимого #x на # x + 1, вот так
Строка [0] -> строка [1]
Строка [0] -> строка [2]
Это то, что я придумал
void anagram(char * s, int len, int y)
{
char temp; //used to store the content to swap betwen the two
if (len < 0) //when the total lenght of the array gets to 0 it means that every single swap has been made
return;
temp = s[len]; //swapping
s[len] = s[y];
s[y] = temp;
puts(s); //prints the string
if (y == 0)
return anagram(s, len-1, y - 1);
return anagram(s, len, y - 1);
}
То, что я получаю, это просто огромный беспорядок и точка останова от VS (если не крах).
Может кто-нибудь помочь мне, пожалуйста?
Задача ещё не решена.
Других решений пока нет …