#include <stdio.h>
#include <stdlib.h>
int static count=0;
void PrintFullArray(int array[], int length, int currentIndex)
{
int i,j;
if(currentIndex==1)
{
for(i=0;i<length;i++)
{
printf("%d",array[i]);
}
printf("/n");
count++;
}
else
{
for(i=0;i<currentIndex;i++)
{
int temp=array[i];
array[i]=array[currentIndex-1];
array[currentIndex-1]=temp;
PrintFullArray(array,length,currentIndex-1);
temp=array[i];
array[i]=array[currentIndex-1];
array[currentIndex-1]=temp;
}
}
}
int main(void)
{
int array[6]={1,2,3,4,5,6};
PrintFullArray(array,6,6);
printf("/nThe main count is:%d/n",count);
return 0;
}
本文介绍了一个使用C语言实现的数组全排列打印程序。通过递归调用与数组元素交换的方法,该程序能够打印出数组所有可能的排列组合,并记录总的排列数。文章通过具体的代码示例展示了如何进行数组元素的交换以及如何递归地生成所有可能的排列。
883

被折叠的 条评论
为什么被折叠?



