java 2d数组运算

时间:2011-05-25 13:49:12

标签: java arrays

伙计们,我正在努力学习考试用过去的二维考试试卷。我必须写一个方法

sumr static (int[][] v)

返回由2行组成的2d数组,v和第2行的第一行和的条目与v的第一行相同。例如:

a = {{2,3,3}, {1,3}, {1,2}}

该方法返回2d数组

b = {{8,4,3},{2,3,3}}

我首先尝试让我的方法返回一个2d数组,但我有错误非法启动表达式,现在我有以下代码,但最后一个元素不打印,并且元素打印全部在行,不是以矩阵的方式......请大家帮助我,明天我的考试。

public class Sum
{

    //  int[][] a = {{2, 3, 3}, {1, 3}, {1, 2}};


    public void sumr(int[][] v)
    {
        for(int rows = 0; rows < v.length; rows++){
            for(int columns = 0; columns < v.length; columns++){
                int result = v[rows][columns];
                System.out.print(result + " ");
                //return [][] result;
            }
        }
    }

    public int getCount(int[][] Array)
    {
        int result = 0; //temp location to store current count
        for (int i = 0;i <= Array.length -1;i++){//loop around first array
            //get the length of all the arrays in the first array
            //and add them onto the temp variable
            result += Array[i].length; 
        }
        return result;
    }

}

1 个答案:

答案 0 :(得分:4)

在外循环中(在内循环之后)包括:

System.out.println(); // go to next line!

并检查内部数组长度!!

int[] innerArray = v[rows];
for(int columns = 0; columns < innerArray.length; columns++){

是:

public void sumr(int[][] v)
{
    for(int rows = 0; rows < v.length; rows++){
        int[] innerArray = v[rows];
        for(int columns = 0; columns < innerArray.length; columns++){
            int result = v[rows][columns];
            System.out.print(result + " ");
            //return [][] result;
        }
        System.out.println(); // go to next line!
    }
}

一旦你可以迭代:

您必须构建一个两项数组:

第1项:“summed array” 第2项:与v [0]

相同

您必须构建该结果。

你必须构建第一个迭代v的项目。就像你想要做的那样。对于每一行(外部循环),您将遍历该行并对其值求和。因此,在处理完每一行之后(在内循环之后),您将获得总和值。该值必须放入“求和数组”中。

接下来,您可以直接构建结果数组,将构建的总和分配到第一个位置,将v [0]分配到第二个位置。

但我还没有编写代码让你这么做; - )