我试图写其遍历的阵列,并且当它找到一个特定类型的值,将它向右移动一个限定的位置数的函数。移一个阵列元件环绕
我知道如何通过临时存储的值,右侧的元素转移到左边,然后写在正确的位置的临时值到切换元件。
我挣扎位是如果某些字符显示在靠近阵列我需要它来回绕,从阵列开始不断的结束,所以是圆形的。
我基本上是在寻找一些指导如何得到这个钉
所以数组转移,例如,大写字母向右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