public static void reversedArray(double testArray[])
{
double lastNumber = 0;
for (int counter1 = 0, counter2 = testArray.length - 1; counter1 < testArray.length; counter1++, counter2 \--)
{
lastNumber = testArray[counter2];
testArray[counter1] = testArray[counter2];
testArray[counter2] = lastNumber;
}
}
这是反转数组的方法。该数组的长度为5.它正确显示前3个数字,但最后2个数字是错误的。例如,我输入1,2,3,4,5并返回5,4,3,4,5
编辑:看起来我得到了它,我取出了testArray.length作为for循环中的比较,并将其替换为counter2。
答案 0 :(得分:1)
您正在覆盖数组中的数据。您需要一些临时位置来存储它。现在你应该能够自己修复你的方法了。
下次考虑使用Collections.reverse(Arrays.asList(yourArray))
而不是自己编写。
答案 1 :(得分:0)
应该是
lastNumber = testArray[counter2];
testArray[counter2] = testArray[counter1];
testArray[counter1] = lastNumber;
答案 2 :(得分:-1)
public static void reversedArray(double testArray[])
{
double lastNumber = 0;
for (int counter1 = 0, counter2 = testArray.length - 1; counter1 < testArray.length; counter1++, counter2 \--)
{
lastNumber = testArray[counter2];
testArray[counter1] = testArray[counter2];
testArray[counter2] = lastNumber; //this line does nothing. testArray[counter2] is already lastnumber.
}
}
最后一行没有做任何事情。最后一个号已经分配给testArray [counter2]。然后它又回到了自己的位置。