0

ネストされた for ループ (C 言語) を使用して、次のことを達成しようとしています。

    a[0] = b[0][0];
    a[1] = b[1][0];
    a[2] = b[1][1];
    a[3] = b[2][0];
    a[4] = b[2][1];
    a[5] = b[2][2];
    a[6] = b[3][0];
    a[7] = b[3][1];
    a[8] = b[3][2];
    a[9] = b[3][3];

私はこれを持っています:

    for (j=0; j<3; ++j)
        for (k=0; k<j; ++k)
            a[i] = b[j][k];

私はこれが必要だと思います:

    for (i=0; i<9; ++i)

しかし、どこに置くか悩んでいます。ロジックに関するヘルプをいただければ幸いです。ありがとうございました。

4

3 に答える 3

2

2 つの修正。

  • カウンターを含める
  • バウンドチェックを包括的にする

イラスト:

int i=0;
for (j = 0; j <= 3; ++j)
    for (k = 0; k <= j; ++k)
        a[i++] = b[j][k];

イデオネ

于 2013-03-20T04:16:37.953 に答える
1

あなたはとても近かった!これはそれを行う必要があります:

i=0;
for (j=0; j<3; ++j)
    for (k=0; k<j; ++k)
        a[i++] = b[j][k];
于 2013-03-20T04:13:09.360 に答える
0

ネストされた for ループ内で変数をインクリメントするだけです。

int i = 0;
for (j=0; j<3; ++j)
    for (k=0; k<j; ++k)
        a[i++] = b[j][k];
于 2013-03-20T04:14:32.993 に答える