#include <stdio.h>
#include <string.h>
int n, a[100];
int used[100];
int num[100];
void dfs( int x )
{
int i;
if( x >= n )
{
for( i = 0; i < n; i++ )
printf( "%d ", num[i] );
printf( "\n" );
}
else
{
for( i = 0; i < n; i++ )
if( !used[i] )
{
num[x] = a[i];
used[i] = 1;
dfs( x+1 );
used[i] = 0;
}
}
return ;
}
int main()
{
int i;
memset( used, 0, sizeof(used) );
printf( "此程序为递归进行n个整数的全排列(n<100),");
printf( "一共有多少个数?\n");
scanf( "%d", &n );
for( i = 0; i < n; i++ )
{
printf( "第%d个:" );
scanf( "%d", &a[i] );
}
dfs( 0 );
return 0;
}
版权声明:本文为sambrown123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。