1 #include <iostream>
2 #include <cstdio>
3 using namespace std;
4
5 void Swap(int * a, int m, int n)
6 {
7 int temp = a[m];
8 a[m] = a[n];
9 a[n] = temp;
10 }
11
12 void Input(int *a, int n)
13 {
14 int i;
15 for (i = 0; i < n; ++i) {
16 a[i] = i;
17 }
18 }
19 void Output(int *a, int n)
20 {
21 int i;
22 for (i = 0; i < n; ++i) {
23 printf("%4d", a[i]);
24 }
25 printf("\n");
26 }
27 void Perm(int * a, int m, int n)
28 {
29 if (m == n) {
30 Output(a, n + 1);
31 }
32
33 int i;
34 for (i = m; i <= n; ++i) {
35 Swap(a, m, i);
36 Perm(a, m + 1, n);
37 Swap(a, m, i);
38 }
39 }
40
41 #define N 3
42 int main()
43 {
44 int a[N];
45 Input(a, N);
46 Perm(a, 0, N - 1);
47
48 return 0;
49 }