以下为建议参考代码
#include <stdio.h>
#include <string.h>
int vid[14], ans[14], n;
void DFS(int step);
int main()
{
while(scanf("%d", &n) != EOF)
{
memset(vid, 0, sizeof(vid));
DFS(1);
}
return 0;
}
void DFS(int step)
{
int i;
if(step == n+1)
{
for(i = 1; i <= n; i++)
printf("%d", ans[i]);
printf("\n");
return;
}
else
{
for(i = 1; i <= n; i++)
{
if(vid[i] == 0)
{
ans[step] = i;
vid[i] = 1;
DFS(step+1);
vid[i] = 0;
}
}
}
}