嵌套for循环逻辑

时间:2013-03-20 04:09:37

标签: c for-loop logic nested-loops

我正在尝试使用嵌套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)

但是我无法找到放在哪里。对逻辑的任何帮助表示赞赏。谢谢。

3 个答案:

答案 0 :(得分:2)

两个修复。

  • 包括一个计数器
  • 进行包含检查(

画报:

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

Ideone

答案 1 :(得分:1)

你太近了!这应该这样做:

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

答案 2 :(得分:0)

你只需要在嵌套的for循环中增加一个变量:

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