2011-12-18 18 views
1

こんにちは皆、私は全体の朝にこれをやろうとしているしているが、私はそれが動作し、出力するループ上の多次元配列であることを確認するように見えることはできませんが、私は非多次元1とのより良い説明しましょう:C++:ループ上に多次元配列を出力するには?

int j; 
int line[4] = {1, 2, 3, 4,}; 


    for(j = 0; j < 4; j ++) 
    { 

     cout << line[j] << endl; 

    } 

これは動作しますが、多次元配列のための頭痛が来るとき:

int i, j; 
int line[2][2]; 

line[0][0] = 99; 
line[0][1] = 98; 
line[1][0] = 97; 
line[1][1] = 96; 

i = 0; 
j = 0; 

for(j; j <= 1; j ++) 
{ 
    for(i; i <= j; i ++) 
    { 
     cout << line[i][j] << endl; 
    } 
} 

誰かが私を助けることができますか?

答えて

0
for(int j = 0; j < 2; j++) 
{ 
    for(int i = 0; i < 2; i++) 
    { 
     std::cout << line[j][i] << endl; 
    } 
} 

を交換します。あなたは、内側のループiが、その後i = 2たら(2 < 2ではないので、それは内側のループを終了し、第一のループを続行し、jが今意志、0で開始し、1に行くが、j0としてそれは同じままになります入力してくださいそれは第一のループを終了します1等しく、それは再入力内側のループになり、i1から0と増分で再び開始する。そしてj = 2後(再び、2 < 2ないため)。

トラックを維持あなたはこの順番になる:

[0][0] 
[0][1] 
[1][0] 
[1][1] 

このコードはなぜ:

for(j; j <= 1; j ++) 
{ 
    for(i; i <= j; i ++) 
    { 
     cout << line[i][j] << endl; 
    } 
} 

が動作しません。

したがって、最初のループj = 0を入力します。 2番目のループi = 0を入力します。それは内部ループを一度実行し、line[0][0]を印刷し、次にi = 1を再度印刷すると、1 <= 0になりますか?いいえ、内部ループを抜けて最初のループに行きます。今すぐj=1 2番目のループに入ると、i0に再初期化しなかったので、iはまだ1に等しくなります。今度はline[1][1]、インクリメントiを印刷し、i = 2を得ました。 2 < = 1ですか?いいえ。内側のループを中止します。 j2であり、2 <= 1はアボートループではありません。あなたは印刷する管理:

[0][0] 
[1][1] 
+0

ありがとうございますが、まだ配列の他の部分を出力していません – Leandro

+0

@LeandroTheBest実際のコードを提供していないか、anonのコードを正確に貼り付けていないか、あなたが嘘をついていますか? –

+0

@LeandroTheBest:すべてのコードを表示しますか? – Dair

0

内部ループ状態の修正!ですから、ループj = 0を入力したときに

:と何が起こっているか

for(j=0; j <= 1; j ++) 
{ 
    for(i=0; i <= 1; i ++) 
    { 
     cout << line[j][i] << endl; 
    } 
} 

インデックス変数の編集コード^^

+0

使用するには:ええ、内側のループで0 '='のために(私を逃しました...今働く。 – Pheonix

+0

これは、anonのコードとちょっと違いますが、 でも動作しますが、なぜi <= jになることはできません。 hmmm – Leandro

1

がうまく、サイズn x mの2D配列を印刷@LeandroTheBest

for(int i = 0; i < n; ++i) 
{ 
    for(int j = 0; j < m; ++j) 
    { 
     cout << a[i][j] << " "; 
    } 
    cout << endl; 
} 
+0

こんにちは私はそれを得るように見えませんnmの値はxと同じですか3は同じ値です – Leandro

+0

@LeandroTheBestあなたの例では、サイズが2x2の行列ですので、あなたの特別なケースでは、nは2で、mは2です。 –