对C来说,我正在努力熟悉随机数生成器。我知道如何在一定的间隔(如1和100)之间得到一个随机数,但我很好奇是否有可能得到一个随机数,其范围在数组的元素内?我会为此使用rand()吗?我尝试在网上搜索这个挑战的一些答案,但是找不到解决方案。举个例子,如果我有一个数组:
Array[10] = {50,26,29,10,78,12,45,83,39,55};
我想创建一个随机数,其结尾值是数组中的数字,我将如何在C中执行此操作?
答案 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