伙计们,我正在努力学习考试用过去的二维考试试卷。我必须写一个方法
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;
}
}
答案 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]分配到第二个位置。
但我还没有编写代码让你这么做; - )