来自标准输入的多维数组



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

例如输入:

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,0],[7,9,6]]

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

公共类TwoDimensionalArray{

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()

相关内容

  • 没有找到相关文章

最新更新