如何使用循环切换数组中的相应元素(例如:First with last,Second with one before last)。我已经使用循环编写了代码,但它没有在Eclipse中提供所需的结果。
int[] a = {1, 2, 3, 4, 5};
int k = 0;
int temp = 0;
while(k < a.length)
{
temp = a[k];
a[k] = a[a.length - 1 - k];
a[a.length - 1 - k] = temp;
k++;
}
假设您不知道数组中的值或它的长度。
答案 0 :(得分:6)
你应该只在数组的中途循环,即while (k < a.length / 2)
- 如果你继续超越,你将最终将交换的元素交换回原来的位置。
答案 1 :(得分:1)
easier way
for(int i=0,j=a.length-1;i<j;i++,j--)
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
答案 2 :(得分:0)
您正在遍历整个数组,这意味着您最终会撤消在迭代的前半部分所执行的操作。只需迭代一半长度的数组(向下舍入)。这应该有效:
int[] a = {1, 2, 3, 4, 5};
int k = 0;
int temp = 0;
while(k < (a.length / 2)) {
temp = a[k];
a[k] = a[a.length - 1 - k];
a[a.length - 1 - k] = temp;
k++;
}