- 论坛徽章:
- 0
|
用递归行不?
static int *array;
static int max_num;
static array_len;
pailie(m)
int m;
{
int i,j;
if(m==0)
{
for(i=0;i<array_len;i++)
{
printf("%d,",array[i]);
}
printf("\n");
return;
}
for(i=1;i<=max_num;i++)
{
for(j=m;j<array_len&&array[j]!=i;j++);
if(j<array_len) continue;
array[m-1]=i;
pailie(m-1);
}
return;
}
main()
{
char *tmp_str;
printf( "input length of array:" );
gets( tmp_str );
array_len = atoi( tmp_str );
printf( "input max number:" );
gets( tmp_str );
max_num = atoi( tmp_str );
array = (int *)malloc(sizeof(int)*array_len);
pailie(max_num);
return;
}
在windows的turbo c环境下执行成功。 |
|