枚举全排列

#include <stdio.h>

#include <stdlib.h>

void f(int n,int *a,int cur)

{    

     int i,j;

     if(cur==n)

     {        

         for(i=0;i<n;i++)

             printf("%d ",a[i]);        

         printf("\n");    

      }    

     else

         for(i=1;i<=n;i++)

        {        

              int ok=1;        

              for(j=0;j<cur;j++)

                  if(a[j]==i) ok=0;        

              if(ok)

              {

                    a[cur]=i;            

                     f(n,a,cur+1);        

              }    

         } 

 }

int main() {

    int n,i,a[11];

    scanf("%d",&n);

    f(n,a,0);

    return 0;

}

posted @ 2014-01-28 11:14  ForeverEnjoy  阅读(145)  评论(0编辑  收藏  举报