public class HW9P1
{
public static void main(String[] args)
{
/*int[][] a1 = { { 4, -2, 10 },
{ 19, 3, -5 } };
int[] b1 = coloumnsum(a1);*/
int[][] a2 = { { 7, -10 },
{ 4, 13 },
{ 1, 0 } };
int[] b2 = coloumnsum(a2);
int i,j;
for (i=0; i<b2.length; i++)
{
System.out.print(b2[i] + " ");
}
}
public static int[] coloumnsum (int[][] a)
{
int[] b = new int[a[0].length];
int i,j, sum= 7;
for (j=0; j<a[0].length; j++)
{
for (i=0; i<a.length; i++)
{
sum = sum + a[i][j];
}
}
return b;
}
}
到目前为止我有这个代码,它给了我来自列的总和。获取和2d数组并返回1d数组。当我运行此代码时,我得到两个00 对于前{2,4} {1,9}总和应为{3,13}
答案 0 :(得分:0)
您没有将sum
存储回数组b
。实际上您不需要sum
,只需在数组中直接添加值即可。像,
public static int[] coloumnsum(int[][] a) {
int[] b = new int[a[0].length];
for (int j = 0; j < a[0].length; j++) {
for (int i = 0; i < a.length; i++) {
b[j] += a[i][j];
}
}
return b;
}
当我进行更改时,您当前的代码会产生(如预期的那样)
12 3
答案 1 :(得分:0)
7
开始计算金额
总结二维数组的列。b
分配任何内容。说明了对列进行求和的正确方法:
public static int[] coloumnsum (int[][] a)
{
int[] b = new int[a[0].length];
for (int i = 0; i < a[0].length; i++){
for (int j = 0; j < a.length; j++)
b[i] += a[j][i];
}
return b;
}