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条回答

    报告相同问题?

    悬赏问题

    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
    • ¥15 谁有desed数据集呀
    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
    • ¥15 关于#hadoop#的问题
    • ¥15 (标签-Python|关键词-socket)
    • ¥15 keil里为什么main.c定义的函数在it.c调用不了
    • ¥50 切换TabTip键盘的输入法