#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10 //定义数组的长度为10
void randomizeInPlace(int array[], int length) { //对长度为length的数组array[]进行随机排列
int i;
for (i = 0; i < length; i++) {
int rnd = i + (rand() % (length - i)); //生成[i, length-1)范围内的一个随机下标
//交换 array[i]与array[rnd]
int temp = array[i];
array[i] = array[rnd];
array[rnd] = temp;
}
}
int main() {
srand(time(NULL)); //设置时间函数time(NULL)为随机数种子
int array[N];
int i, j;
for (i = 0; i < N; i++) { //为原数组赋初值
array[i] = i + 1;
}
printf("原数组为:"); //打印输出原数组
for (i = 0; i < N; i++) {
printf("%d ", array[i]);
}
printf("\n");
int times;
printf("请输入随机重排的次数:");
scanf("%d", ×); //用户指定随机重排的次数
for (j = 0; j < times; j++) {
randomizeInPlace(array, N); //每次随机排列都是在上次随机排列的数组基础之上
printf("随机重排%d次的数组为:", j + 1);
for (i = 0; i < N; i++) {
printf("%d ", array[i]);
}
printf("\n");
}
return 0;
}