现在只能输出全排列。
代码如下:
#include
int main()
{
void change(int *a,int *b,int temp);
void pai(int *num,int i,int n);
int num[10];
int i,n;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;++i)
num[i]=i+1;
pai(num,0,n-1);
printf("\n");
}
return 0;
}
void change(int *a,int *b,int temp)
{
temp=*a;
*a=*b;
*b=temp;
}
void pai(int*num,int i,int n)
{
int j,temp;
void change(int *a,int *b,int temp);
if(i==n)
{
printf("(%d",num[0]);
for(j=1;j<=n;++j)
printf(", %d",num[j]);
printf(")");
}
else
{
for(j=i;j<=n;++j)
{
change(&num[i],&num[j],temp);
pai(num,i+1,n);
change(&num[i],&num[j],temp);
}
}
}
求教O(∩_∩)O