-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 に答える