二次対角行列について正方行列を転置するプログラムを作成しようとしています。私はそれを通常の(対角線に沿って)普通に転置する方法を知っていますが、私はセカンダリ軸に関してそれを行う方法を理解することができません。二次対角に関する行列の転置(フリップ)
ループで何が間違っていますか?私は 'N/2'まで実行し、 'i'と 'j'の初期化を変えなければならないことを知っていますが、それをしても動作しません。
void transpose(int a[][N]) // Transposes matrix along the secondary diagonal
{
for (int i = 0; i < N; i++)
for (int j = 0; j < i; j++)
{
int tmp = a[i][j];
a[i][j] = a[N - 1 - j][N - 1 - i];
a[N - 1 - j][N - 1 - i] = tmp;
}
}
私はこれについて考えましたが、これは3x3マトリクスでしか動作しないことを認識し、NxNマトリクス –