输出自定义的一组数的全排列

#include <stdio.h>
#define Mixnumber 5


void swap(int *c, int *d){
int x = *c;
*c = *d;
*d = x;
}//交换两个数字


void QuanArray(int*b, int begin, int end){
int i;


if (begin >= end){
for (i = 0; i <= end;i++)
printf("%d", b[i]);
printf("\t");
}


else{
for (i = begin; i <= end; i++){
swap(&b[begin],&b[ i]);
QuanArray(b, begin + 1,end);
swap(&b[begin],&b[ i]);
}

}
}//全排列的核心函数


int main(){
int a[Mixnumber];
int i;


printf("请输入你想要数列的值:");
for (i = 0; i < Mixnumber;i++)
scanf_s("%d", &a[i]);//输入数组


printf("你输入的数组为:");
for (i = 0; i < Mixnumber; i++)
printf("%d  ", a[i]);//输出数组


printf("这个数列的全排列为:");
QuanArray(a, 0, Mixnumber-1);
return 0;

}


猜你喜欢

转载自blog.csdn.net/qq_42082542/article/details/80108563
今日推荐