Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何编写求4×3维双精度数组平均值的方法_Java - Fatal编程技术网

Java 如何编写求4×3维双精度数组平均值的方法

Java 如何编写求4×3维双精度数组平均值的方法,java,Java,我试图找到4×3维数组的平均值,但是当我运行代码时,我收到了异常错误。问题是如何对数组中的各个数字求和,这样我就可以通过除以其长度来求其平均值 这是我的密码: double[][] numbers = {{1.1,2.2,1.3},{2.1,3.4,3.2},{5.4,6.5,3.7},{4.2,3.5,7.4}}; double average = averagenum(numbers); System.out.println(average); } public s

我试图找到4×3维数组的平均值,但是当我运行代码时,我收到了异常错误。问题是如何对数组中的各个数字求和,这样我就可以通过除以其长度来求其平均值

这是我的密码:

    double[][] numbers = {{1.1,2.2,1.3},{2.1,3.4,3.2},{5.4,6.5,3.7},{4.2,3.5,7.4}};
    double average = averagenum(numbers);
    System.out.println(average);
}

public static double averagenum(double[][] numbers) {
    double average = 0;
    double sum = 0;
    for(int i=0; i<numbers.length;i++){
        sum+= numbers[i][i+1];
        average = sum/numbers.length;
    }
    return average;
}

}

对于二维数组,必须遍历每个循环并对每个元素求和。因此,您可以看到循环在每个维度上迭代的次数为2次。我对每个数字求和,然后除以每个维度的乘积

我猜您正在寻找以下代码

public class CalculateAvg
{
  public static void main (String[] args)
  {
    double[][] numbers = { { 1.1, 2.2, 1.3 }, { 2.1, 3.4, 3.2 }, { 5.4, 6.5, 3.7 }, { 4.2, 3.5, 7.4 } };
    double average = averagenum(numbers);
    System.out.println(average);

  }

  public static double averagenum (double[][] numbers)
  {
    double totalAverage = 0.0d;
    double totalSum = 0;

    for (int i = 0; i < numbers.length; i++)
    {
      for (int j = 0; j < numbers[0].length; j++)
      {
        totalSum += numbers[i][j];
      }
    }
    totalAverage = totalSum / (numbers.length*numbers[0].length);
    return totalAverage;
  }
}

谢谢你的评论,我终于明白了

public static void main(String[] args) {
        double[][] numbers = {{1.1,2.2,1.3},{2.1,3.4,3.2},{5.4,6.5,3.7},{4.2,3.5,7.4}};
        System.out.println("\tAverage:"+averagenum(numbers)+"\n");
        printer(numbers);
    }

    public static double averagenum(double[][] numbers) {
        double average = 0;
        double sum = 0;
        int num = numbers.length * numbers[0].length;
        for(int i=0; i<numbers.length;i++){
            for(int j=0; j<numbers[0].length; j++){
                sum+= numbers[i][j];    
            }  
        }
        average = sum/num ;

        return average;
    }
    public static void printer(double[][] GenArray) {

        System.out.println("\tContent in Array:"+Arrays.deepToString(GenArray));
    }
}

拿一支铅笔和一些纸,在纸上写下一个小数值的4x3矩阵,然后逐行运行函数,写下每行发生的情况。这将需要一两分钟,但当你得到总和+=。。。线。你不能一次在2维中循环,你需要一个单独的内部循环。如果你要提到一个错误,请指定它是哪个错误以及发生在哪里。你有没有研究过这个错误,看看它为什么会被抛出?关于那个原因,你不明白什么?我该怎么区分呢?这个错误是个例外嗨,忘了写解释了。对于二维数组,必须遍历每个循环并对每个元素求和。因此,您可以看到循环在每个维度上迭代的次数为2次。我对每个数字求和,然后除以每个维度的乘积。