我被要求定义一个名为A的数组,其大小为5X4。我必须初始化它的元素,然后将它们中的每一个增加两个(x + 3),其中x从1开始。
|**RowNumber**|**Zone**|
|-------------|--------|
|Z20 |box 4 |
不幸的是,输出似乎给出了A [i] [j]
的错误和重复值答案 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]);
}
}
你没有清楚地解释什么是初始值