【发布时间】:2021-12-17 02:44:46
【问题描述】:
我想做一个程序,它生成2个随机坐标,然后它测试我之前制作的二维数组中的位置是否为空(数组中的值为0)。如果为真,则将值 2 置于该坐标,否则应继续寻找该位置。问题是它在某些情况下会无限运行。
这是我制作的数组:
int array[4][4] =
{
{0,0,0,0},
{0,0,0,0},
{0,0,0,0},
{0,0,0,0}
};
下面是剩下的代码:
srand(time(NULL));
int ranadom_num[2] = { rand() % 4, rand() % 4 };
while (array[ranadom_num[0]][ranadom_num[1]] != 0)
{
int ranadom_num[2] = { rand() % 4, rand() % 4 };
}
array[ranadom_num[0]][ranadom_num[1]] = 2;
有什么帮助吗? :)
【问题讨论】:
-
循环外定义的
random_num和循环内的random_num是两个不同的对象。事实上,循环中的对象在每次迭代中都是不同的对象。 -
@EugeneSh 提到。一旦
random_num被选中,它将是无限循环或无循环。 here可以看到工作代码 -
@TruthSeeker 为什么不作为答案发布?
标签: arrays c random while-loop random-seed