数组移动时索引变量不会增加

时间:2018-11-15 11:57:52

标签: c

我想将2D数组的元素向右移动n个元素。我的数组有26个元素。 这似乎不起作用,我也不知道为什么。

i = 2;
c = 0;
for (i; i < 26; i++)
{
  array[1][i-1] = array[1][c];
  c++;
}

但是我用数组[0] [0]的元素而不是下一个elemetn覆盖了索引i上的每个元素。

indexvariable c似乎没有增加,我也不知道为什么。

非常感谢您的投入。

1 个答案:

答案 0 :(得分:0)

拿一张纸,逐步记录下发生的事情。

赞:

i = 2;
c = 0;
array[1][1] = array[1][0];
c=1;
i=3;
array[1][2] = array[1][1];
c=2;
i=4;
array[1][3] = array[1][2];
. . .

如您所见,首先将元素0的值分配给元素1,然后将元素1的值分配给元素2。由于元素1的值与元素0的值相同,因此元素2现在保留与元素0和元素1的值相同。因此,最后,您实际上将元素0的值分配给所有其他元素。

解决方案是从另一端开始。那就是:

array[1][25] = array[1][24];
array[1][24] = array[1][23];
array[1][23] = array[1][22];
. . .