我有一个 8x8 矩阵,在选择我想要的行之后,我想得到它的三个最小元素,并随机选择这三个元素之一。问题是我不知道如何处理这三个元素。我只知道如何获得最小元素,即以下代码。
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
并随机选择这三个之一。
有人可以给我任何关于我该怎么做的想法吗?从今天早上开始,我就一直坚持这个。谢谢