输入 一个整数N 再输入N个整数
输出 N个数的全排
代码如下:
1 #include<stdio.h> 2 #include<string.h> 3 #define N 100 4 5 int a[2][N] = {0}; 6 int p[N] = {0}; 7 8 void dfs(int k, int n) 9 { 10 int i; 11 12 if(k == n) 13 { 14 for(i = 0; i < n - 1; i++) 15 printf("%d ", p[i]); 16 17 printf("%d ", p[i]); 18 } 19 else 20 { 21 for(i = 0; i < n; i++) 22 { 23 if(a[0][i] == 0) 24 { 25 p[k] = a[1][i]; 26 a[0][i] = 1; 27 28 dfs(k+1, n); 29 30 p[k] = a[0][i] = 0; 31 } 32 } 33 } 34 35 return; 36 } 37 38 int main() 39 { 40 int n, i; 41 42 while(scanf("%d", &n) != EOF) 43 { 44 memset(a, 0, sizeof(a)); 45 memset(p, 0, sizeof(p)); 46 for(i = 0; i < n; i ++) 47 scanf("%d", &a[1][i]); 48 49 dfs(0, n); 50 } 51 52 return 0; 53 }