C++全排列

来源:互联网 发布:淘宝如何设置发货地址 编辑:程序博客网 时间:2024/05/12 11:10
#include<iostream>
using namespace std;
void SWAP(int& a, int& b){
int s=a;
a=b;

b=s;

}

void perm(int list[], int k, int m){
  int i;
    if (k == m)
    {
        for (i = 0; i <= m; i++){
if(i<m){
        cout << list [i]<<",";
}
else{
cout << list [i];}
}
         cout << endl;
    }
  else 
    {
         
         for (i=k; i <= m; i++)
         {
             SWAP (list[k], list[i]);
             perm (list, k+1, m);
             SWAP (list [k], list [i]);
         }
    }
}


int main(){
int in[10];
int d;
    cout<<"Input"<<endl;
    cin>>in[0];
    cin>>in[1];
cin>>in[2];

for( d=2;d<10;d++){
while(in[d]!=0){

cin>>in[++d];

}
break;
}
d=d-1;
cout<<"Output"<<endl;
perm(in,0,d);
cout<<"End"<<endl;
return 0;


}