java 2d数组算法

问题描述

| 伙计们,我正努力用过去的2D试卷来学习考试。我必须写一个方法
sumr static (int[][] v)
返回由2行组成的2d数组,v的第一行和第二行的和的条目与v的第一行相同。例如:
a = {{2,3,3},{1,2}}
方法返回二维数组
b = {{8,4,{2,3}}
我首先尝试使我的方法返回2d数组,但是我遇到了错误的表达式开始错误,现在我具有以下代码,但是最后一个元素未打印,并且所有元素均以行的形式打印,而不是以a的形式打印矩阵方式...请大家帮我,我的考试是明天。
public class Sum
{

    //  int[][] a = {{2,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;
    }

}
    

解决方法

在外循环中(在内循环之后)包括:
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!
    }
}
一旦可以迭代: 您必须构造一个包含两个项目的数组: 第一项:\“求和数组\” 第二项:与v [0]相同 您必须建立该结果。 您必须构建对v进行迭代的第一项。就像您要尝试做的那样。对于每一行(外循环),您将遍历该行并对其值求和。因此,在处理了每一行之后(在内循环之后),您将获得总和值。该值必须放在“求和数组”中。 接下来,您可以直接构建结果数组,将构建的和分配给第一位,将v [0]分配给第二位。 但是我还没有写代码让你做;-)