Отсортировать квадратный массив(4x4) по стрелке
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Например, так — со вспомогательными функциями перевода линейного номера в индексы двумерного массива:
int I(int k)
{
return k%3+2*((k/3)%2)*(1-k%3);
}
int J(int k)
{
return k/3;
}
void sort(int M[4][4])
{
for(int b = 0, e = 11; b != e; ++b)
for(int k = e, j = k--; j != b; j = k--)
if (M[I(j)][J(j)] < M[I(k)][J(k)])
{
int t = M[I(j)][J(j)];
M[I(j)][J(j)] = M[I(k)][J(k)];
M[I(k)][J(k)] = t;
}
}
Полный код тут: https://ideone.com/hM45GK
Все, как заказано :)
