// 定义交换两个元素的函数
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 使用洗牌算法随机打乱数组元素的顺序
void shuffleArray(int array[], int size) {
srand(time(NULL)); // 使用当前时间作为随机数种子
for (int i = size - 1; i > 0; i--) {
int j = rand() % (i + 1); // 生成0到i之间的随机数
swap(&array[i], &array[j]); // 交换位置i和j上的元素
}
}
int main() {
int a[] = {1, 2, 3, 4, 5, 6};
int size = sizeof(a) / sizeof(a[0]);
printf("原数组:");
for (int i = 0; i < size; i++) {
printf("%d ", a[i]);
}
shuffleArray(a, size);
printf("\n乱序后的数组:");
for (int i = 0; i < size; i++) {
printf("%d ", a[i]);
}
return 0;
}
1*作用为打乱数组元素顺序
2*利用指针完成交换元素函数的定义
3*生成随机数,然后交换随机数i,j位置数(自定义交换次数)