【发布时间】:2023-03-31 18:53:02
【问题描述】:
我对这个程序的目标是创建一个二维数组ratings,其大小由命令行的前两个参数指定。 args[0] 代表行数 r 和 arg[1] 代表列数 c。接下来的参数都将用于填充数组。所以如果命令行参数是 3 2 5 2 3 3 4 1。我希望该数组是 3 行乘 2 列。值 5 将在 rating[0][0] 中,值 2 将在 rating[0][1] 中,值 3 将在 rating[1][0] 中,等等。在那之后,我想计算每列的总和。因此,在这种情况下,第 0 列将是 12,第 1 列将是 6。
public static void main(String[] args) {
int r = Integer.parseInt(args[0]);
int c = Integer.parseInt(args[1]);
int[][] ratings = new int[r][c];
int z = 2;
int y = 3;
int x = 0;
int counting = 0;
int sum = 0;
for (int rows = 0; rows < ratings.length; rows++ ) {
for (int column = 0; column < ratings[c].length; column++){
ratings[rows][column] = Integer.parseInt(args[z]);
sum += ratings[rows][column];
z++;
}
System.out.println(sum);
sum = 0;
}
//System.out.println(movieRating);
}
这是我对列求和的尝试,但现在这只是求和 5 和 2、3 和 3、4 和 1。我希望对列而不是行求和,但不知道如何解决它。谢谢
【问题讨论】:
-
您的第一个 for 循环填充列,而不是行,因此第二行反之亦然。这也许是混乱的根源。这样对吗?如果是这样,那么我将进行另一个数组遍历并总结该遍历中的列。但我不确定这是否是正确的做法。
-
您需要一个列总和数组,或者您需要在构建数组后在单独的步骤中进行求和。
-
我想要对列而不是行求和,但不知道如何解决我不明白你的意思。总结所有行或总结所有列是一样的
-
@Eklavya OP 想要每一列的总和。注意外部 for 循环中的
sum = 0;指令。 -
@Patrick 你的意思是每行每一列的总和吗?你怎么能从
sum = 0;假设?
标签: java arrays multidimensional-array command-line