1 #include "stdafx.h"
2 #include<iostream>
3 #include<string>
4 using namespace std;
5 const int MaxNum=9;
6 int iArr[MaxNum];//定义数组
7 void print(int cur,int n);
8 inline void Swap(int *a,int *b)//交换两个位置的值
9 {
10 int temp;
11 temp=*a;
12 *a=*b;
13 *b=temp;
14 }
15 int _tmain(int argc, _TCHAR* argv[])
16 {
17 for(int i=0;i<MaxNum;i++)iArr[i]=i+1;//初始化
18 print(0,2);
19 return 0;
20 }
21
22 void print(int cur,int n)
23 {
24 if(cur==n)
25 {
26 for(int i = 0;i<=n;i++)
27 cout<<iArr[i];
28 cout<<endl;
29 }
30
31 for(int i=cur;i<=n;i++){//第一次是无效替换——Swap(&iArr[k],&iArr[k]);这是个技巧
32 Swap(&iArr[cur],&iArr[i]);
33 print(cur+1,n);
34 Swap(&iArr[i],&iArr[cur]);
35 }
36
37
38 }