我正试图弄清楚如何从标准输入中读取多维数组,前提是用户提供数组的行和列大小后跟整数
例如输入:
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));
}
}
}这是一个正在工作的
您的代码中存在一些错误。
-
您颠倒了向用户要求的维度顺序。
使用此:
int rowA = scan.nextInt(); int colA = scan.nextInt();
取而代之的是:
int colA = scan.nextInt(); int rowA = scan.nextInt();
-
您在
array1[i][j] += scan.nextInt();
中编写了array1
而不是array
请注意,您可以使用array[i][j] = scan.nextInt();
而不是array[i][j] += scan.nextInt()