如何将2维数组的每个元素递增2

时间:2016-12-03 12:14:37

标签: c arrays loops for-loop multidimensional-array

我被要求定义一个名为A的数组,其大小为5X4。我必须初始化它的元素,然后将它们中的每一个增加两个(x + 3),其中x从1开始。

|**RowNumber**|**Zone**|
|-------------|--------|
|Z20          |box 4   |

不幸的是,输出似乎给出了A [i] [j]

的错误和重复值

1 个答案:

答案 0 :(得分:1)

你在这里迭代2d数组:

for(i=0;i<SIZE;i++){
    for(j=0;j<size;j++){

    }
}

然后迭代2d数组的每个元素约20次,更改其值和打印值:

for(x=1;x<40;x=x+2){
    A[i][j]=x;
    printf("%d\n",A[i][j]);
}

在上面的代码中,A [i] [j]不会改变。 x将具有值1,3,5,7,...,39。 你在这里发生的是分配A [i] [j] = 1并打印它。接下来,您将3分配给A [i] [j](注意i和j没有改变,所以我们已经将值1更改为3)并打印它。另一次迭代将它分配给5等。这发生在矩阵的每个元素上。最后,每个元素都有39个值。

您应该使用:

替换大多数内部for循环
A[i][j] = value;
value += 2;

最后给出了

int value = 1;
for(i=0;i<SIZE;i++){
    for(j=0;j<size;j++){
        A[i][j] = value;
        value += 2;
        printf("%d\n",A[i][j]);
    }
}

你没有清楚地解释什么是初始值