排列问题!
题目:由用户给定一个数N,然后电脑打印从1到N的所有的排列。如N=3,则电脑打印 123 132 213 231 312 321 !N<10
#include<stdio.h>
#include<string.h>
int xunhuan(char * ,int);
int i;
char array[] ={'1','2','3','4','5','6','7','8','9','0'};
void main()
{
char a[10];
scanf("%d",&i);
xunhuan(a,0);
}
xunhuan(char a[], int n)
{
int j;
if(n == i)
{
a[i]='\0';
printf("%s\n",a);//输出数被赋值的数组a
return 0;
}
else{
for(j=0;j<i;j++)//
{ //check;
a[n]='\0';//a[0]='\0';
if(strchr(a,array[j])!=NULL) continue;
a[n]=array[j];//这句只是做了初始化;排列是哪一句!?小弟实在看不出来!
xunhuan(a,n+1);}}}