数组的全排列

来源:互联网 发布:淘宝中店铺简介怎么写 编辑:程序博客网 时间:2024/04/29 17:50

 

#include <stdafx.h>

int  list[ 100 ];

int  num ;

void input(){    num = 0 ;

    while( scanf("%d" , &list[ num ] ) && list[ num ] )  num ++ ;

    num -- ;}

void printfList(){    int i ;

    for( i = 0 ; i <= num ; i ++ )    {        printf("%d ", list[ i ] );    }    printf("/n");}

void swap( int a , int b ){    int temp = list[ b ] ;

    list[ b ] =   list[ a ] ;

    list[ a ] = temp ;}

void perm( int k ){    if( k == num )    {        printfList();

        return ;    }

    int i ;

    for( i = k ; i <= num ; i ++ )    {        swap( i  , k );

        perm( k + 1 );

        swap( i , k );    }}

int main(){ //freopen("out.txt" , "w" , stdout );

    input();

    perm( 0 );

 while(  1 );

    return 0 ;}