所以我应该创建一个程序,创建一个3 x 4数组,看起来像:
1 2 3 4
1 2 3 4
1 2 3 4
我设法找到了打印该阵列的方法,但我方向的第二部分告诉我总结我的总数。当我编译并运行这个程序时,我得到结果42,它应该是30.我的指示还告诉我,我需要使用嵌套for循环来创建和初始化和总结数组。
public class PartA {
public static void main (String[] args){
int [][] array = new int [3][4];
for(int i = 0; i < array.length; i++){
for(int j = 0; j < array[i].length; j++){
int k = array[0][j];
int l = array[1][j];
array[0][j] = (i+1)+(j);
array[1][j] = k;
array[2][j] = l;
System.out.print(array[i][j] + " ");
}
System.out.println();
}
int sum = 0;
for(int i = 0; i < array.length; i++){
for(int j = 0; j < array[i].length; j++){
sum += array[i][j];
}
}
System.out.println("The sum of the contents of this array is " + sum);
}
}
答案 0 :(得分:0)
这是因为您一次又一次地分配所有阵列。在第一次for循环后,如果你打印你的数组,它将看起来像。
3 4 5 6
2 3 4 5
1 2 3 4
所以替换下面的代码
array[0][j] = (i+1)+(j);
array[1][j] = k;
array[2][j] = l;
使用
array[i][j] = j+1;
答案 1 :(得分:0)
您的总和代码非常好。但问题在于初始化阵列的方式。请在此处查看您的代码:
int k = array[0][j];
int l = array[1][j];
array[0][j] = (i+1)+(j);
array[1][j] = k;
array[2][j] = l;
在i=0
和j = 0
时看到您将array[0][0]
的值修改为1
对于i =1
,j =0
,您再次将array[0][0]
的值修改为2,依此类推。
所以初始化你的数组如:
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
array[i][j] = j + 1;
}
}