我試圖寫其遍歷的陣列,並且當它找到一個特定類型的值,將它向右移動一個限定的位置數的函數。移一個陣列元件環繞
我知道如何通過臨時存儲的值,右側的元素轉移到左邊,然後寫在正確的位置的臨時值到切換元件。
我掙扎位是如果某些字符顯示在靠近陣列我需要它來回繞,從陣列開始不斷的結束,所以是圓形的。
我基本上是在尋找一些指導如何得到這個釘
所以數組轉移,例如,大寫字母向右3位和特殊字符向左1位:
{ M, y, N, a, m, e, P} becomes...
{ y, M, P, a, N, m, e}
要如果8顯示從該陣列的端部早於3個元素,並且不會繞到8的元素向右移位3位我有如下所述,但是這僅適用。
輸入數組:
{0, 1, 2, 3, 4, 5, 6, 7, **8**, 9}
所需的輸出:
{0, **8**, 1, 2, 3, 4, 5, 6, 7, 9}
int[] array = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int i = array.Length - 1; i >= 0; i--)
{
if (array[i] == 8)
{
int temp = array[i];
int j = 0;
for (j = i; j < i + 3; j++)
{
array[j] = array[j + 1];
}
array[j] = temp;
}
}
如果任何人都可以給我一些指點我怎麼能做到這一點,將是巨大的!
究竟是什麼問題? – Oded 2011-04-17 19:03:28
它延續到我需要幫助的陣列的開始位置,所以如果元素需要向右移動出現爲倒數第二個元素,並且需要向右移動三個元素,則它將以第二個元素結束數組 – MarkJW 2011-04-17 19:07:20