- #include <iostream>
- using namespace std;
- void swap(int *a, int *b){
- //交换a,b的值
- int m;
- m = *a;
- *a = *b;
- *b = m;
- }
- 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);
- //递归调用函数perm
- swap(&list[k], &list[i]);
- }
- }
- }
- int main(){
- int num=9,temp,size=9;
- int tlist[num];
- cout<<"Input"<<endl;
- for(int i=0;i<=num;i++){
- cin>>temp;
- if(temp==0){
- size=i;
- break;
- }
- tlist[i]=temp;
- }
- int list[size];
- for(int i=0;i<=size;i++){
- list[i]=tlist[i];
- }
- cout<<"Output"<<endl;
- perm(list, 0, size-1);
- cout<<"End"<<endl;
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/231020136611.html
来源: http://www.codesnippet.cn/detail/231020136611.html