【发布时间】:2016-09-27 12:37:49
【问题描述】:
我正在尝试
- 删除包含 10 个“点”的数组中的信息。
- 用 (10) 个随机数填充数组
我的代码直到时间
int main()
{
int numbers[10] = { 0 };
int randNumber = 0;
int i = 0;
for (int i = 0; i <= 10; i++)
{
srand(time(NULL));
randNumber = rand() % 10 + 1;
printf("Random number saved in the array: %d\n", randNumber);
i++;
}
getchar();
getchar();
return 0;
}
【问题讨论】:
-
将值赋给数组。
-
好的,但是如果随机函数在 for 循环之外。它不会只创建一个随机数吗? (至少现在当我把它移到外面时)。我将它放在 for 循环中的目的是在每次循环运行时创建一个新的随机数。
-
srand()不会创建随机数。rand()实际上为您提供了 随机 数字。 -
srand(time(NULL));表示“选择伪随机数序列#1474983934”(下一秒#1474983935)。之后,rand()表示“选择所选序列中的下一个数字”。如果你总是重新开始相同的序列并总是选择其中的第一个数字,你总是得到相同的数字。解决方案:将srand()调用移到循环外。 -
你的数字必须在 1 到 10 的范围内吗?如果是这样,您可能希望首先按顺序分配值 (
for ( i = 0; i < 10; i++ ) numbers[i] = i+1;),然后在数组上执行 random shuffle。