for (int i=0; i<n; i++) {
for (int j=0; j<i; j++) {
temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
Вы не указали язык, но обычно вы делаете следующее:
let a be your array.
for each i,j with i<j switch a[i,j] with a[j,i]
Чтобы получить транспонирование квадратной матрицы нам нужно рассмотреть элементы выше главной диагонали или ниже нее и поменять местами каждый с его отражением вдоль главной диагонали:
for i->0 to N-1
for j->i+1 to N-1
swap matrix[i][j] with matrix[j][i]
В Википедии была статья о переносе матриц на месте. В статье рассматриваются неквадратные матрицы.
Зачем беспокоиться? Просто поменяйте местами индексы в любом операторе доступа.