我对编程很陌生,所以解决方案需要简单。我需要做的是生成一个 8x8 矩阵,并且由于我稍后将使用它,我需要将所有元素设置为等于 0。然后,我需要随机选择 20 个元素(不选择相同的两次)并将这些元素更改为 1。使用我现在所拥有的,我通常每次打印 15 到 18 个“1”。意思是 2 到 5 次重复。这本身对我来说似乎很奇怪,所以我怀疑一定有更大的东西我错过了。我看过其他类似的帖子,讨论随机化可能的元素,然后从该列表中进行选择,但此时所需的代码有点超出我的想象。
我的方法在这里有什么缺陷吗?
int Board[8][8];
int x, y, i, a, b;
for (x = 0; x < 8; x++)
{
for (y = 0; y < 8; y++)
Board[x][y] = 0; //配列の定義
}
srand(time(NULL)); //任意なマスを1に設定
for (i = 0; i < 20; i++)
{
a = rand() % 8;
b = rand() % 8;
Board[a][b] = 1;
}
//盤面の出力
for (x = 0; x < 8; x++)
{
for (y = 0; y < 8; y++)
printf(" %d ", Board[x][y]);
printf("\n");
}