2013-08-21 5 views
8

これはかなり簡単な質問かもしれないと思いますが、私はまだそれを理解することができませんでした。このように、ループの多次元配列を転置するにはどうすればよいですか?

int[,] matris = new int[5, 8] { 
     { 1, 2, 3, 4, 5,6,7,8 }, 
     {9,10,11,12,13,14,15,16}, 
     { 17,18,19,20,21,22,23,24 }, 
     { 25,26,27,28,29,30,31,32 }, 
     { 33,34,35,36,37,38,39,40 }, 

     }; 

とA:私はそうのような2次元配列を持っていれば

for (int r = 0; r < 5; r++) 
     { 

      for (int j = 0; j < 8; j++) 
       Console.Write("{0} ", matris[r, j]); 

      Console.WriteLine(); 
     } 

ので、このコードで私は多次元配列をプリントアウトしています。しかし、配列の転置をどのように表示するのですか?

+2

あなたはtransponent」とはどういう意味ですか"?私が以前に出会った言葉ではありません。 –

+0

_transponent_を定義できますか? –

+0

おそらく彼は移調を意味するでしょうか? http://en.wikipedia.org/wiki/Transpose –

答えて

16

ただ、お互いに自分のループを変更:新しい配列を作成する

for (int j = 0; j < 8; j++) 
{ 
    for (int r = 0; r < 5; r++) 
     Console.Write("{0} ", matris[r, j]); 

    Console.WriteLine(); 
} 

var newArray = new int[8, 5]; 
for (int j = 0; j < 8; j++) 
    for (int r = 0; r < 5; r++) 
     newArray[j, r] = matris[r, j]; 
+0

yeeah ok今私は間違ったことを見ます。しかし、私は新しい配列に転置matrisを保存したいですか? – user2669196

9

あなただけのこれを実行する必要があります。

for (int r = 0; r < 8; r++) 
{ 
    for (int j = 0; j < 5; j++) 
     Console.Write("{0} ", matris[j, r]); 
    Console.WriteLine(); 
} 
+0

ああ、投稿が遅すぎる! @MarcinJuraszekが投稿したのとほぼ同じ解決策です:) – Anna

+0

とにかくあなたの答えに本当に感謝しています! :) – user2669196

+0

これは正しい答えだと思います。人々は上向き投票に急いでいる。 – ataravati

関連する問題