【发布时间】:2020-07-08 09:46:46
【问题描述】:
我有一个数组。
int Game[100];
我想在这个数组中创建一个由两个数字组成的随机序列。 (0 和 1)。
int i;
int Game[];
for(i = 100; i >= pos; i--) {
// Random number ( 0 or 1 )
int v = (int)rand() / (int)RAND_MAX;
Game[i] = Game[i-1];
Game[i] = v;
}
这是正确的方法吗?
【问题讨论】:
-
如果 Game 的大小为 100。带有
i == 100(循环的第一次迭代)的 Game[i] 将不在数组中。 -
为什么是
Game[i] = Game[i-1]?您最终将在下一行覆盖Game[i]。此外,i应从 99 开始,因为Game[100]不指代有效位置 -
pos的值是什么? -
int Game[];? -
关于:
int v = (int)rand() / (int)RAND_MAX;这不太可能产生你想要的东西。建议:int v = rand() % 2;,因为每次执行此语句都会导致1或0。