#include <iostream>
using namespace std;
template<class T>
void swip(T& a,T& b)//交换两个元素的值
{
T temp=a;
a=b;
b=temp;
}
template<class T>
void pailie(T list[],int k,int n)
{
int i;
if(k==n)//当排列到最后一个元素时,打印本次的排列结果
{
for(i=0;i<n;i++)
cout<<list[i]<<" ";
cout<<endl;
}
else for(i=k;i<n;i++)//通过交换位置,生成一次新的排列结果
{
swip(list[k],list[i]);
pailie(list,k+1,n);
swip(list[i],list[k]);
}
}
int main()//main函数
{
char list[]="abcd";
pailie(list,0,4);
system("Pause");
return 0;
}
“`调试结果