我需要反转一个数组,例如将第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)];
但是我不知道为什么减号不起作用?或者如果我的程序一般都可以正常工作,那么它就没有超过构建部分。
答案 0 :(得分:1)
数组[(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;
}
答案 1 :(得分: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
的情况下,在记忆中丢失)并且只留下牛奶。