java - 为什么不换呢?

标签 java arrays

public class Arrays {

    public static void main(String[] args){
        int x;
        int arr[] = {0,1,2,3,4,5,6,7,8,9} ;
        for(int a = 1; a < 10; a++){
            x = arr[a];
            arr[a] = arr[10-a];
            arr[10-a] = x;
        }
        for(int a = 0; a<10; a++){
            System.out.println(arr[a]);
        }
    }
}

问题很简单:为什么数组成员不交换位置?

最佳答案

您的交换功能有效。您只需要处理几件事即可。
1. 仅运行交换直到数组的前半部分;否则它将(交换回并)产生原始数组。
2.数组索引从0开始,而不是从1开始。

这是您需要的代码

int x;
int arr[] = {0,1,2,3,4,5,6,7,8,9};
int len = arr.length; // saving length in a int variable

for(int a = 0; a < len / 2; a++){
  x = arr[a];                        
  arr[a] = arr[len - 1 - a];  //notice the 'len - 1' here as index starts from 0. So last element is 'length of array - 1'
  arr[len - 1 - a] = x;
}

for(int a = 0; a < len; a++){
  System.out.print(arr[a]);
}

关于java - 为什么不换呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42912244/

相关文章:

java - 我生成数组元素的所有组合的函数有什么错误?

Java Return 不退出方法(循环)

sql - 将 postgresql 数组解包成行

java - JLabel对象数组初始化问题

java - Tablelayout 或自定义 listView 布局

java - JFrame java 应用程序中找不到资源

java - 使用命名组捕获特定字符之前的所有内容

php - php函数Mysql输出错误

c++ - 打印 vector 的 vector

java - Android Studio 调试器复制数组的值