-3

我需要反转一个数组,例如将点 5 中的内容移动到 0、4 到 1、3 到 2。

            int size, length;

    System.out.print("how big of a list do you have: ");
    size=reader.nextInt();

    length=size-1;

    int [] array = new int [size];

    for (int count=0; count < array.length; count ++){
        System.out.println("enter a number: ");
        array [count] = reader.nextInt();
    }
    for (int count=length; count > 0; count --)
    array [(length-count)];
}

}

我在 Eclipse 中执行此操作,并且在最后一行中不断出现错误,说我没有使用运算符/表达式:array [(length-count)];但我不知道为什么减号不起作用?或者如果我的程序可以正常工作,它没有通过构建部分。

4

2 回答 2

1

Array[(length-count)] 不起作用,因为它是一个值,它和写一样

    0;

它不是对过程或操作的调用,所以它是一个错误。

试试这个:

    int temp = 0 ;
    for(int start=0, end = numbers.length -1 ; start < end; start++, end--){
        //swap numbers
        temp = array[start];
        array[start] = array[end];
        array[end] = temp;
    }
于 2013-01-28T00:09:45.473 回答
1
int temp = 0;
for (int i = 0; i < array.length / 2; i++)
{
    int temp = array[i];
    array[i] = array[array.length - i--];
    array[array.length - i--] = temp;
}

temp用于使数字不会相互覆盖。把它想象成从冰箱里取食物。牛奶在水后面,你想要一些牛奶。为了得到牛奶,你取水并把它放在你的手中(temp将是手)。然后你把牛奶放在水所在的地方,水放在牛奶所在的地方。没有“手”,你就会失去水(掉在地板上,或者在 的情况下temp,失去记忆),只剩下牛奶。

于 2013-01-28T00:13:03.237 回答