-5

如何将一个数字添加到数组的中点(没有数组列表),这样不会覆盖任何数字,但最后一个数字不会出现在数组中。我的代码:

 int midpoint = length/2;
 array[midpoint] = 4;
 for (int i = midpoint; i < array.length -1; i++)
 {
     array[i] = array[i+1];
 }          
 displayArray(array);
4

3 回答 3

2

将所有项目从中点向右移动,然后添加中点。

如果我是你,我会反向迭代。

for (int i = array.length - 1; i > midpoint; i--)
{
    array[i] = array[i-1];
}

array[midpoint] = somenumber
于 2013-02-27T18:45:34.007 回答
1

您可以使用System.arraycopy()有效地移动元素:

System.arraycopy(array, midpoint, array, midpoint + 1, array.length - midpoint - 1);
array[midpoint] = 4;

您当前方法的问题是您在将元素移动到最终位置之前无法挽回地修改它们。

于 2013-02-27T18:46:20.497 回答
0

采用

int midpoint = array.length/2;

for (int i = array.length-1 ; i> midpoint; i--) { 
  array[i] = array[i-1]; 
}

array[midpoint] = 4; 
displayArray(array);
于 2013-02-27T18:47:01.997 回答