我已经声明了一个数组,我希望将第一列的值乘以每行第二列的值,并创建这些产品的总和。我已经尝试了下面的代码清单,我缺少什么
public class Arrays {
public static void(String[] args) {
int array_x[][]={{9,8},{2,17},{49,4},{13,119},{2,19},{11,47},{3,73}};
int sum = 0;
for (int i = 0; i < array_x.length; i++) {
for (int j = 0; j < array_x.length; j++) {
array_x[i][j] = i * j;
System.out.println("\n" + array_x[i][j])
}
}
}
}
输出应该是这样的 9 * 8 = 72 2 * 17 = 34等然后将整个结果总和为72 + 34 + ....
答案 0 :(得分:6)
你写的代码有几个问题,包括它不会编译的事实,因为你有不同数量的打开和关闭括号,你没有指定函数名称(我假设是主要的)并且有; 缺少。然而,最大的问题是合乎逻辑的:你只需要一个来来做你想做的事情。你知道数组第二维的索引将是0和1,因为正如你所说的那样,数组只有两列。此外,您需要将产品累积到 sum ,而是将 sum 初始化为0并且从不更新它。最后,指令 array_x [i] [j] = i * j 将索引与值相乘,因此结果不是您所期望的,并且此结果将被放入 array_x < / strong>,这是错误的地方,因为你真的不需要改变输入数组。
class Arrays{
public static void main(String[] args){
int array_x[][]={{9,8},{2,17},{49,4},{13,119},{2,19},{11,47},{3,73}};
int sum=0;
for(int i=0;i<array_x.length;i++) {
int prod = array_x[i][0] * array_x[i][1];
System.out.println("\n"+prod);
sum += prod;
}
System.out.println("Final: " + sum);
}
}
您最初编写的代码实际上是构建multiplication table所需的代码,但在这种情况下,您需要一个具有相同行数和列数的数组。
答案 1 :(得分:0)
public class Arrays {
public static void main (String[] args) {
int array_x[][]={{9,8},{2,17},{49,4},{13,119},{2,19},{11,47},{3,73}};
int multiply[] = new int[7];
for (int i = 0; i < array_x.length; i++) {
multiply[i] = array_x[i][0] * array_x[i][1];
}
int sum = 0;
for(int i = 0; i < multiply.length; i++)
{
System.out.println(array_x[i][0] + "*" + array_x[i][1] + "=" + multiply[i]);
sum += multiply[i];
}
System.out.println("Sum:" + sum);
}
}