我正在尝试创建一个程序,使用给定的单词,可以计算和打印每个字母组合。 更具体地说,我被要求使用递归函数,我应该得到的是这样的:
给出的字:HOME
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的断点(如果不是崩溃)。
有人可以帮帮我吗?