用C语言 编写程序输入一个整数,输出从1到这个整数的所有排列组合。 样例一: 输入:3

用C语言 编写程序输入一个整数,输出从1到这个整数的所有排列组合。
样例一:
输入:3
输出:1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

#include <stdio.h>
int s[1000];
void f(int a[],int len,int n)
{
if (!n)
{
for (int i=0;i<len-1;i++)
{
printf("%d ",s[i]);
}
printf("%d\n",s[len-1]);

for (int i=0;i<len;i++)
{
if (a[i]!=0)
{
s[len-n]=a[i];
a[i]=0;
f(a,len,n-1);
a[i]=i+1;
}
}
}

int main()
{
int n;
int a[1000];
while (~scanf("%d",&n))
{
for (int i=0;i<n;i++) a[i]=i+1;
f(a,n,n);
}
}

温馨提示:答案为网友推荐,仅供参考