来自标准输入的多维数组

Multidimensional arrays from standard input

我正在尝试弄清楚如何从标准输入中读取多维数组,前提是用户提供了行和列的大小,后跟数组的整数

例如输入:

        2 3      <= row, col of array
        8 3 10   < array integers
        7 9 6

我的代码目前是:

    int colA = scan.nextInt();
    int rowA = scan.nextInt();        

    int[][] array = new int[rowA][colA];

    for (int i = 0; i <rowA;i++){
        for (int j=0; j<colA;j++){
            array1[i][j] += scan.nextInt();
        } 
    }

我数组的输出是:[[8,3,10,7,9,6]] 但我想做的是输出 [[8,3,10 ],[7,9,6]]

这里首先从用户那里得到的行和列值被颠倒了这是我能看到的唯一错误 导入 java.util.Arrays; 导入 java.util.Scanner;

public class 双维数组 {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int rowA = scan.nextInt();
    int colA = scan.nextInt();

    int[][] array = new int[rowA][colA];

    for (int i = 0; i < rowA; i++) {
        for (int j = 0; j < colA; j++) {
            array[i][j] += scan.nextInt();
        }
    }
    for (int[] innerArray : array) {
        System.out.println(Arrays.toString(innerArray));
    }
}

} 这是一个工作

您的代码中存在一些错误。

  1. 您颠倒了向用户询问的尺寸顺序。

    使用这个:

    int rowA = scan.nextInt();
    int colA = scan.nextInt();
    

    而不是这个:

    int colA = scan.nextInt();        
    int rowA = scan.nextInt();
    
  2. 您在 array1[i][j] += scan.nextInt();

    中写了 array1 而不是 array

请注意,您可以使用 array[i][j] = scan.nextInt(); 而不是 array[i][j] += scan.nextInt()