编程求给定的4个数字的全排列。

来源:百度知道 编辑:UC知道 时间:2024/07/07 08:46:15
例如,若给定的4个数字为5、6、7、8,则这4个数字的全排列为:
5687 5786 5768 5867 5876 5678
6587 6785 6758 6857 6875 6578
7586 7685 7658 7856 7865 7568
8576 8675 8657 8756 8765 8567
C语言编程!!!

int count = 0;

void permutation(char per[], int m, int len)
{
int i;
char tmp;

if (m < len - 1){
permutation(per, m + 1, len);
for (i = m + 1; i < len; i++){
/* 选当次的排列“头” */
tmp = per[m];
per[m] = per[i];
per[i] = tmp;
permutation(per, m + 1, len);
/* 恢复上一次的排列 */
tmp = per[m];
per[m] = per[i];
per[i] = tmp;
}
}else{
++count; /* 对排列进行计数 */
/* 调整一下格式^^ */
printf("%s\n", per);
}
return;
}