随机数,其范围是数组的元素

时间:2016-09-15 13:47:52

标签: c arrays random

对C来说,我正在努力熟悉随机数生成器。我知道如何在一定的间隔(如1和100)之间得到一个随机数,但我很好奇是否有可能得到一个随机数,其范围在数组的元素内?我会为此使用rand()吗?我尝试在网上搜索这个挑战的一些答案,但是找不到解决方案。举个例子,如果我有一个数组:

Array[10] = {50,26,29,10,78,12,45,83,39,55};

我想创建一个随机数,其结尾值是数组中的数字,我将如何在C中执行此操作?

3 个答案:

答案 0 :(得分:2)

只需生成一个随机数,该数字是数组的索引,并读出该位置的数字。

const int index = rand() % (sizeof Array / sizeof *Array);
const int value = Array[index];

请注意,使用像这样的模数并不能为您提供最佳随机数,但它至少应该起作用。

答案 1 :(得分:0)

只需选择一个随机索引并访问它。

Array[rand() % 10];

答案 2 :(得分:0)

尝试获取随机索引。

index = rand() % 10;

A[index]  // This gets a random value in your range