どうも、ちょげ(@chogetarou)です。
配列(array)のランダムな要素を取得する方法を紹介します。
方法

配列(array)のランダムな要素を取得するには、rand()を使います。
まず、rand()を配列の要素数で割った余りで、ランダムなインデックスを取得します。
そして、配列の取得したランダムなインデックスにアクセスします。
//myArray=対象の配列
int n = sizeof(myArray) / sizeof(myArray[0]); //配列の要素数を取得
int index = rand() % n; //ランダムなインデックスを取得
T item = myArray[index]; //ランダムな要素を取得
上記のランダムなインデックスにアクセスすることで、配列のランダムな要素を取得できます。
使用例
#include <stdio.h>
#include <time.h>
int main(void){
int nums[] = { 1, 2, 3, 4, 5 };
srand(time(NULL)); //乱数のシード値を設定
int n = sizeof(nums) / sizeof(nums[0]);
for (int i = 0; i < n; i++) {
int index = rand() % n;
printf("%d ", nums[index]);
}
return 0;
}
出力:
3 3 2 4 3
コメント