[code=Java][/codeclass Array
{
public static void main(String []args)
{
int arr[]={1,2,3,4,5,6,7,8,9};
for (int x=0,y=arr.length-1;x<y ; x++,y--)
{
x=x^y;
y=x^y;
x=x^y;
}
for (int x=0;x<arr.length ;x++ )
{
System.out.print(arr[x]+",");
}
}
}
=============================================================
class Array
{
public static void main(String []args)
{
int arr[]={1,2,3,4,5,6,7,8,9};
for (int x=0,y=arr.length-1;x<y ; x++,y--)
{
arr[x]=arr[x]^arr[y];
arr[y]=arr[x]^arr[y];
arr[x]=arr[x]^arr[y];
}
for (int x=0;x<arr.length ;x++ )
{
System.out.print(arr[x]+",");
}
}
}
小弟的问题是为什么第一种方法不行呢?把角标位互换再打印为嘛不行,是不是可以这么理解,我换不换,角标从左往右都是0开始的。 ]
------解决方案--------------------
起一个数组,存下标
int index[]=new int[arr.length];
for(int i= 0;i<arr.length;i++){
index[i] = arr.length - i-1;
}
for (int i=0;i<index.length ;i++ ){
System.out.print(arr[index[i]]+",");
}