要打亂數組的順序,可以使用隨機數生成器來實現。具體步驟如下:
引入頭文件 #include <stdlib.h>
和 #include <time.h>
,其中 stdlib.h
包含了隨機數生成器函數,time.h
包含了獲取當前時間函數。
使用 srand()
函數來設置隨機數種子,通常使用當前時間作為種子,例如 srand(time(NULL));
。
遍歷數組,將當前位置的元素與一個隨機位置的元素進行交換。交換的隨機位置可以使用 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
這樣就實現了打亂數組順序的功能。