#define N 3
void aArrange(int a[],int j,int b)
{
int i,k;
int temp;
for(i=j;i<b;i++)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
aArrange(a,j+1,b);
if(j==b-1)
{
for(k=0;k<b;k++)
printf("%d",a[k]);
printf("\n");
}
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
main()
{
int a[N]={7,8,9};
aArrange(a,0,N);
}
采用遞歸的方法,用函數void find(int k)來存放第n個數,再用壹個數組int pos[4]來表示每個位置上的數字。