c语言

c语言怎么打乱数组顺序

小亿
277
2023-12-12 00:03:48
栏目: 编程语言

要打乱数组的顺序,可以使用随机数生成器来实现。具体步骤如下:

  1. 引入头文件 #include <stdlib.h>#include <time.h>,其中 stdlib.h 包含了随机数生成器函数,time.h 包含了获取当前时间函数。

  2. 使用 srand() 函数来设置随机数种子,通常使用当前时间作为种子,例如 srand(time(NULL));

  3. 遍历数组,将当前位置的元素与一个随机位置的元素进行交换。交换的随机位置可以使用 rand() 函数生成一个随机数,用该随机数与数组长度取模来获得一个有效的随机位置。

以下是一个例子:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// 打乱数组顺序
void shuffle(int arr[], int size) {
    srand(time(NULL)); // 设置随机数种子

    for (int i = 0; i < size; i++) {
        int j = rand() % size; // 生成一个随机位置
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);

    shuffle(arr, size);

    printf("打乱后的数组:");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}

运行以上代码会输出类似如下的结果:

打乱后的数组:3 2 1 5 4

这样就实现了打乱数组顺序的功能。

0
看了该问题的人还看了