У меня есть матрица 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
И выбрать случайным образом один из этих трех.
Может ли кто-нибудь дать мне какие-либо идеи о том, как я могу это сделать? Я застрял с этим с раннего утра. Спасибо