fasloww 2013-09-21 11:48 采纳率: 0%
浏览 913

C递归求全排列!求解释程序,不懂

#include
#include
void Permutation(char* pStr, char* pBegin);

void permutation(char* pStr)

{

Permutation(pStr, pStr);

}

void Permutation(char* pStr, char* pBegin)

{

if(!pStr || !pBegin)

return;

if(*pBegin == '\0')  
{  
    printf("%s\n", pStr);  
}  
else  
{  
     for(char* pCh = pBegin; *pCh != '\0'; ++ pCh)   
    {  
        // swap pCh and pBegin  
        char temp = *pCh;  
        *pCh = *pBegin;  
        *pBegin = temp;  

        Permutation(pStr, pBegin + 1);    
        // restore pCh and pBegin  
        temp = *pCh;  
        *pCh = *pBegin;  
        *pBegin = temp;  
    }  
}  

}

int main()
{
char str[] ={'a','b','c','d','\0'};
permutation(str);
getchar();
return 0;
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 腾讯企业邮箱邮件可以恢复么
    • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
    • ¥15 错误 LNK2001 无法解析的外部符号
    • ¥50 安装pyaudiokits失败
    • ¥15 计组这些题应该咋做呀
    • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
    • ¥15 让node服务器有自动加载文件的功能
    • ¥15 jmeter脚本回放有的是对的有的是错的
    • ¥15 r语言蛋白组学相关问题
    • ¥15 Python时间序列如何拟合疏系数模型