交换多维数组中的值

swapping values in multi-dimensional array

我目前正在处理一个问题,我需要根据条件交换多维数组中的值。输入示例:

2 3

4 5

5 2

6 25

以上元素是一个4行2列的数组(columns = 2是固定的)。 如果列中的值大于行中的值,则无需更改任何内容,否则应互换值。

请在下面找到我的代码:

int c = 2;
int temp1, temp2;
Scanner in = new Scanner(System.in);
System.out.println("Enter 'n': ");
n = in.nextInt();

int[][] arr = new int[n][c];

if (n <= 15) {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < c; j++) {
            System.out.println("Enter values into md-array: ");
            arr[i][j] = in.nextInt();
        }
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < c; j++) {
            if (arr[i][j] < arr[i][j + 1]) {
                System.out.println(arr[i][j]);
            } else {
                temp2 = i; //swapping
                i = j;
                j = temp2;

                temp1 = j;
                j = i;
                i = temp1;

                System.out.println(arr[i][j]);
            }
        }
    }
}

当我尝试使用上述代码时,我可以将元素写入数组,但我无法执行交换操作或初始比较操作。我也面临IndexOutOfBoundsException。我无法纠正这个问题。

试试这个:

    int c=2;
        int temp1, temp2;
        Scanner in = new Scanner(System.in);
        System.out.println("Enter 'n': ");
        int n = in.nextInt();

        int[ ][ ] arr = new int[n][c];

        if (n<=15) {
            for(int i=0; i<n;i++) {
                for (int j=0;j<c;j++) {
                    System.out.println("Enter values into md-array: ");
                    arr[i][j]=in.nextInt();
                    }   
            }
            System.out.println("====================================================");
            for(int i[]: arr){
                for(int j: i){
                    System.out.print(j+"   ");
                }
                System.out.println("");
            }
            System.out.println("====================================================");
            for(int i=0; i<n;i++) {
                for (int j=0;j<c-1;j++) {
                  if (arr[i][j]<arr[i][j+1]) {
//                      System.out.println(arr[i][j]);      
                  }
                  else {
                      temp2=arr[i][j]; //swapping
                      arr[i][j]=arr[i][j+1];
                      arr[i][j+1]=temp2;

//                      System.out.println(arr[i][j]);
                  }
                }
            }
            for(int i[]: arr){
                for(int j: i){
                    System.out.print(j+"   ");
                }
                System.out.println("");
            }
        }

现在检查。我已经检查过它是否正常工作。我输入的示例数据是:

3   4   
4   4   
5   3   
1   7 

结果是:

3   4   
4   4   
3   5   
1   7