私は 8x8 行列を持っています。必要な行を選択した後、その 3 つの最小要素を取得し、この 3 つのうちの 1 つをランダムに選択したいと考えています。問題は、これらの 3 つの要素を処理する方法がわからないということです。最小要素を取得する方法を知っているだけです。それは次のコードです。
int piezas[8][8] = {
0, 2, 2, 5, 3, 2, 1, 1,
0, 4, 5, 2, 4, 3, 0, 0,
0, 4, 2, 2, 1, 2, 3, 2,
0, 3, 1, 5, 1, 2, 3, 4,
2, 5, 6, 5, 3, 1, 2, 7,
8, 2, 0, 0, 0, 2, 1, 1,
1, 2, 2, 1, 1, 6, 3, 4,
};
int myrow = 3; // the row I want to analyze
int index;
int min=0;
for (index=0;index<8;index++) {
printf("%d", piezas[myrow][index] );
if(piezas[myrow][index]<min)
min=piezas[myrow][index];
printf("\t\t");
}
printf("min: %d", min);
初期行列が次の場合、必要な出力は次のとおりです。
int piezas[8][8] = {
0, 2, 2, 5, 3, 2, 1, 1,
0, 4, 5, 2, 4, 3, 0, 0,
0, 4, 2, 2, 1, 2, 3, 2,
0, 3, 1, 5, 1, 2, 3, 4,
2, 5, 6, 5, 3, 1, 2, 7,
8, 2, 0, 0, 0, 2, 1, 1,
1, 2, 2, 1, 1, 6, 3, 4,
};
そして、行番号 3 を選択します。
0, 3, 1, 5, 1, 2, 3, 4,
アルゴリズムは選択する必要があります
0, 1, 1
そして、この3つからランダムに1つを選びます。
誰かがどうすればそれを行うことができるかについてのアイデアを教えてもらえますか? 今朝早くからこれに固執しています。ありがとう