2016-05-11 6 views
1

これは私のコードです。うまくいくはずですが、行列を転置して印刷すると、転置されない同じ行列が出力されます。 説明はありますか? 行列を変更し、コピーとトランスポーズを行わずにリターンします。 ます。public void転置(){Javaの行列転置(必要説明)

for(int i=0;i<n;i++) 
     for(int j=0;j<m;j++){ 
      Object tmp=matrix[i][j]; 
      matrix[i][j]=matrix[j][i]; 
      matrix[j][i]=tmp; 
     } 
} 
+1

ヒント:後、あなたの行列を印刷してみてくださいすべてのループステップ。小さな行列から始めましょう。各セルに異なる値を使用します。 – GhostCat

答えて

0

あなたは、内側のループで間違ったインデックスを持っています。あなたがここにmatrix[i][j]=matrix[j][i];

によって、あなたの元々のマトリックスを上書きしているので、あなたのコードは、あなたの行列を転置しない

for (int i = 0; i < n; i++) { 
     for (int j = i+1; j < n; j++) { 
      Object tmp = matrix[i][j]; 
      matrix[i][j] = matrix[j][i]; 
      matrix[j][i] = tmp ; 
    } 
関連する問題