【问题标题】:trouble with creating a method that returns the average of each column of a 2d array (this is in java)创建返回二维数组每列平均值的方法时遇到问题(这是在java中)
【发布时间】:2014-11-04 04:58:16
【问题描述】:

我在创建此方法时遇到了麻烦,因为我刚开始使用数组,现在我必须创建一个方法,该方法将一个二维 inters 数组作为输入并返回一个包含每列平均值的单个数组?谁能帮忙?

public class Assigment4 {

    public static void main(String[] args) {

     int[][] a = new int[5][5];
        a[0][0] = 1; //rows
        a[0][1] = 2;
        a[0][2] = 3;
        a[0][3] = 4;

        a[0][0] = 1; //columns
        a[1][0]=  2;
        a[2][0] = 3;
        a[3][0] = 4;
        double []summ =(averageForEachColumn(a));



    }
    public static double [] averageForEachColumn (int [][] numbers){

    double ave [] = new double[numbers[0].length];
    int count=0;

    for (int i = 0; i < numbers[0].length; i++){
        double sum = 0;
        count= count+1;
        for (int j = 0; j < numbers.length; j++){
            count= count +1; 
            sum += numbers[j][i];

        }
        ave[i] = sum/count;
       System.out.println (sum);


    }

    return ave;
  }
}

【问题讨论】:

    标签: java methods multidimensional-array


    【解决方案1】:

    您的count 应在内部循环之前重置为0

    count= count+1; // change this to count = 0;
    for (int j = 0; j < numbers.length; j++){
    

    【讨论】:

    • 我做了,但我的意思是程序的其余部分对吗?
    • @Dee 代码除了这个问题之外似乎是正确的,但你为什么不直接测试一下呢?
    • 我做了,但我认为我需要填充这些值?
    • @Dee 我猜你应该填充它们
    【解决方案2】:

    您尚未填充二维数组中的大部分值。总共有 16 个值,您已经填充了其中的 7 个(其中一个是两次)。

    完全摆脱count,你不需要它。

    变化:

    ave[i] = sum/count;
    

    收件人:

    ave[i] = sum/a[i].length;
    

    【讨论】:

      【解决方案3】:

      这是一个 2x4 数组的简化示例。您可以在闲暇时添加更多值。

      public static void main(String[] args)
      {
          int[][] array = {{1, 2, 3, 4},{5, 6, 7, 8}};
      
          for(int col = 0; col < 4; col++)
          {
              double sum = 0;
              int row = 0;
              while (row  < array.length)
              {
                  sum+=array[row++][col];
              }
              System.out.println("Average of values stored in column " + col + " is " + sum / array.length);
          }
      }
      

      当然,您可以将sum/array.length 的结果添加到平均值数组中,而不仅仅是显示它。

      【讨论】:

        猜你喜欢
        • 2021-03-03
        • 1970-01-01
        • 2015-02-06
        • 1970-01-01
        • 2020-12-12
        • 1970-01-01
        • 2021-12-17
        • 2011-07-23
        • 1970-01-01
        相关资源
        最近更新 更多