2011-05-25 201 views
0

伙计们,我很努力地学习过去考卷的二维数组考试。我必须写一个方法java二维数组算术

sumr static (int[][] v) 

返回2D阵列由2行和v和第二行中的第一行和的项是相同的v的第一行的EG:

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

该方法返回二维数组

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

我第一次尝试让我的方法返回一个二维数组,但我有表达的错误非法启动,现在我有以下的代码,但最后元素doe不打印,打印的元素全部排成一行,而不是以矩阵的方式打印......请大家帮助我,明天我的考试。

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

是什么,当你试图从该方法返回一个“二维”数组您使用的语法? – asgs 2011-05-25 13:56:02

+1

我已经添加了作业标签(这是一个学习的东西...) – helios 2011-05-25 13:58:28

+0

我用这个:public int [] [] sumr(int [] [] v) – learnerNo1 2011-05-25 14:00:42

回答

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! 
    } 
} 

一旦你可以遍历:

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

第一个项目: “总结阵” 第二item:与v [0]相同

你必须建立这个结果。

您必须构建迭代v的第一项,就像您正在尝试的那样。对于每一行(外循环),您将遍历该行并对其值进行求和。所以在处理每一行之后(在内部循环之后),您将获得总和值。该值必须放入“求和数组”中。

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

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

+0

Helios,编译器不允许我有第三个for循环说:“列已经在sumr(int [] [])中定义,如果我只是改变它为其他名称它仍然会好吗?谢谢非常感谢您的帮助 – learnerNo1 2011-05-25 14:16:04

+0

Arrrg !!!我的错误,我重复了行,而不是取代它!:)我现在就修复它... – helios 2011-05-26 07:31:44

+0

事实上,我想要做的是迭代2d数组,它是,我必须有两个,而不是三个,他在这些情况下不要害怕问“第三个循环是什么?“或者”你为什么要两次声明变量?“,重要的是你明白每件事情是什么。 – helios 2011-05-26 07:34:02