如何编写一个返回数组中给定列的总和的方法?JAVA

我应该创建一个打印主列中给定列的总和的方法。该程序显示以下编译错误:


错误


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

at algproo2.ALGPROO2.sumColumn(ALGPROO2.java:29)

at algproo2.ALGPROO2.main(ALGPROO2.java:24)

Java 结果:1


我应该怎么办?


public class ALGPROO2 

{

    public static void main(String[] args)

    {

        int[][] a = {

            {-5,-2,-3,7},

            {1,-5,-2,2},

            {1,-2,3,-4}

        };

        System.out.println(sumColumn(a,1)); //should print -9

        System.out.println(sumColumn(a,3)); //should print 5

    }

    public static int sumColumn(int[][] array, int column)

    {

      int sumn = 0;

      int coluna [] = array[column];

      for (int value : coluna )

      {

        sumn += value;

      }

      return sumn; 

    }



}


烙印99
浏览 153回答 1
1回答

繁星点点滴滴

当你这样做时int coluna [] = array[column];,你实际上得到的是一行,而不是列。例如:这样做array[1]会给你这个数组:{1,-5,-2,2}因此,这样做array[3]会给你一个错误,因为没有第 4 行/第 4 个数组(因为数组从 0 开始)。相反,您需要遍历您的行(即行数为array.length)。然后在每一行,您可以访问该特定列的值:public static int sumColumn(int[][] array, int column) {&nbsp; int sumn = 0;&nbsp; for(int i = 0; i < array.length; i++) {&nbsp; &nbsp; int row[] = array[i]; // get the row&nbsp; &nbsp; int numFromCol = row[column]; // get the value at the column from the given row&nbsp; &nbsp; sumn += numFromCol; // add the value to the total sum&nbsp; }&nbsp;&nbsp; return sumn; // return the sum}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java