说明下列程序的功能,并给出程序执行结果(6分)。
#include<stdio.h> #define n 4 int m=0,a[n]; int ok(int i, int j) { intj1,il,okl; j]=j;i]=i; ok]=1; while((jl>l)&&ok1) {1--; okI=a[j1]!=i;} j]=j;i]=i; while( j1>1)&&(il>1)&&okl) (j1;il; ok1=a[j1]!=i1 ;) j]=j;i]=i; while ( (jl>1)&&(i1<n)&&okl) (j1-;il++; okl=a[j1]!=il ;) return ok]; } void unknown2 (int j) { int i; if(j> n) {m++; printf("m= %d ",m); for(i=l;i<=n;i+) printf(" %d",a[i]); printf("\n"); else for( i=l; i<=n;i++) if(ok(i,j)[ a[j]=i; unknown2(j+l);) } main0 { unknown2(1);}