>>323 #include <stdio.h> #define N 6 int nextperm(int p[], int n){ int i, j, t; i = n - 1; p[0] = 0; while (p[i] >= p[i + 1]) i--; if (i == 0) return 0; j = n; while (p[i] >= p[j]) j--; t = p[i]; p[i] = p[j]; p[j] = t; i++; j = n; while (i < j){ t = p[i]; p[i] = p[j]; p[j] = t; i++; j--; } return 1; }
int main(){ int i, n, p[N + 1]; do{ scanf("%d", &n); }while(n < 1 || N < n); for (i = 1; i <= n; i++) p[i] = i; do{ for (i = 1; i <= n; i++) printf("%d", p[i]); putchar(' '); }while(nextperm(p,n)); return 0; } ぐぐって出てきたのほぼそのまんまだから動作原理はシラネ