Во-первых, вы должны понять фундаментальную природу отраженной матрицы.Для любого i
, j
верно следующее утверждение:
m[i][j] ≡ m[j][i]
Итак, вам нужен некоторый алгоритм, чтобы сделать это верно.Могу я предложить:
for(int i = 0; i < HEIGHT; ++i)
for(int j = 0; j < i; ++j)
m[i][j] = m[j][i];
Обратите внимание на состояние 2-го цикла.Убедившись, что j
всегда меньше i
, мы ограничиваем нашу деятельность нижним левым треугольником.
Далее вы должны понимать, как реализована двумерная матрица в одномерноймассив.Похоже, что вы установили личность:
m[i][j] ≡ v[i*WIDTH+j]
Подставляя, мы имеем:
for(int i = 0; i < HEIGHT; ++i)
for(int j = 0; j < i; ++j)
v[i*WIDTH+j] = v[j*WIDTH+i];