#define USED 1 #define UN 0 #define NUM 6 void print(const int * m,int *up,const int x){ if(x==NUM-1){ for(int i=0;i<NUM-1;i++){ printf("%d",*up); up++; } printf("/n"); return; } else{ int status[NUM]; int n[NUM]; int t=0; for(int i=0;i<NUM;i++){ status[i]=*m; n[i]=*up; m++; up++; } for(int i=0;i<NUM;i++){ if(status[i]==UN){ n[x]=i; status[i]=USED; print(status,n,x+1); status[i]=UN; } } } } int main(int argc, _TCHAR* argv[]) { int status[NUM]; int n[NUM]; for(int i=0;i<NUM;i++){ status[i]=UN; } for(int i=0;i<NUM;i++){ n[i]=i; } print(status,n,0); getchar(); return 0; }