递归写的全排列~~~ 按字典序排序输出。。。 复习一下DFS吧。。。。 大牛直接54掉。。。 #include <iostream> #include <algorithm> #include <string> using namespace std; void DFS(int a[10], int n, int p) { int c[10]; int i; if (n == p+1) { for (i = 0; i<n; i++) printf("%d", a[i]); printf("/n"); } else { memcpy(c, a, sizeof(c)); for (i = p; i<n; i++) { swap(c[i], c[p]); DFS(c, n, p+1); } } } int main() { int card[10], n, i; while (scanf("%d", &n) != EOF) { for (i = 0; i<n; i++) scanf("%d", &card[i]); sort(card, card+n); DFS(card, n, 0); } return 0; } Input 51 2 3 4 5 6 1 2 3 4 5 6