私はプログラミングが新しく、ソリューションは単純である必要があります。私がする必要があることは、8x8行列を生成することです。後でそれを行うため、すべての要素を0に設定する必要があります。次に、要素をランダムに20個選択する必要があります同じものを2回)、それらの要素を1に変更します。 私は今のところ、毎回15〜18 "1"を印刷します。意味は2〜5回繰り返されます。それ自体は私にとって奇妙な一貫性があると思われるので、私は、私が見逃しているより大きなものがなければならないと思う。私は可能性のある要素をランダム化し、そのリストから選択することについて話している他のポストを見てきましたが、それを行うために必要なコードはこの時点で私の頭の中では少ししかありません。Cで2次元配列の非反復ランダム要素を選択
ここに私のアプローチに欠陥がありますか?
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");
}
コード内で 'srand()'の呼び出しに注意してください。通常はプログラム内で一度だけ呼び出す必要があります。トピックには良いSO Q&Aがありますが、私はSOアプリケーションにブックマークしていません。 –