Java 如何获得数组中前两个数字的平均值?

Java 如何获得数组中前两个数字的平均值?,java,arrays,methods,double,average,Java,Arrays,Methods,Double,Average,我不知道如何得到数组中前2个数字的平均值,然后是前3个数字的平均值。我在这些线路上遇到了错误平均值(数字[0],数字[1])和平均值(数字[0],数字[1],数字[2])这是我的代码 public class NoVarargsTest{ // calculate average public static double average(double[] numbers){ double total = 0.0; // calculate tota

我不知道如何得到数组中前2个数字的平均值,然后是前3个数字的平均值。我在这些线路上遇到了错误<代码>平均值(数字[0],数字[1])
平均值(数字[0],数字[1],数字[2])这是我的代码

public class NoVarargsTest{
    // calculate average
    public static double average(double[] numbers){
        double total = 0.0;
        // calculate total using the enhanced for statement
        for (double d : numbers){                
            total += d;
        }                          
        return (total / (double)numbers.length);
    }
    public static void main (String[] args) {
        double d1 = 10.0;
        double d2 = 20.0;
        double d3 = 30.0;
        double d4 = 40.0;

        double[] numbers= new double[4];
        numbers[0] = 10.0;
        numbers[1] = 20.0;
        numbers[2] = 30.0;
        numbers[3] = 40.0;

        if (args.length == 0)
            System.out.println("No Command Line arguments");
        else {

            System.out.println("You provided " + args.length
                    + " arguments");

            for (int i = 0; i < args.length; i++) {
                System.out.println("args[" + i + "]: "
                        + args[i]);
            }
        }

        System.out.printf("d1 = %.1f%nd2 = %.1f%nd3 = %.1f%nd4 = %.1f%n%n",numbers[0],numbers[1], numbers[2], numbers[3]);
        System.out.printf("Average of d1 and d2 is %.1f%n",
        average(numbers[0],numbers[1]));
        System.out.printf("Average of d1, d2 and d3 is %.1f%n",
        average(numbers[0],numbers[1],numbers[2]));
        System.out.printf("Average of d1, d2, d3 and d4 is %.1f%n",
        average(numbers)); 
    }

} // end class NoVarargsTest
公共类测试{
//计算平均数
公共静态双平均(双[]个数字){
双倍合计=0.0;
//使用增强型for语句计算总计
对于(双d:数字){
总数+=d;
}                          
返回(总/(双)个数。长度);
}
公共静态void main(字符串[]args){
双d1=10.0;
双d2=20.0;
双d3=30.0;
双d4=40.0;
double[]数字=新的double[4];
数字[0]=10.0;
数字[1]=20.0;
数字[2]=30.0;
数字[3]=40.0;
如果(args.length==0)
System.out.println(“无命令行参数”);
否则{
System.out.println(“您提供的”+args.length
+“论据”);
对于(int i=0;i
如果要使用varargs,必须将方法签名声明为:

public static double average(double... numbers){
numbers
将在您的方法中成为一个
double[]


这是由指定的。

如果要使用varargs,必须将方法签名声明为:

public static double average(double... numbers){
numbers
将在您的方法中成为一个
double[]


这是由。

您的
公共静态双平均(double[]数字)
方法的参数是一个double[]数组,但您只需在此处传递两个双值:
平均(数字[0],数字[1])


要解决此问题,请将您的方法更改为
公共静态双平均(双…数字)
或传递一个数组:
平均(新的双[]{numbers[0],numbers[1]})
您的
公共静态双平均(双[]数字)
方法的参数是双[]数组,但您只需在此处传递两个双值:
average(数字[0],数字[1])


若要解决此问题,请将方法更改为
公共静态双平均(双…数字)
或传递一个数组:
平均(新的双[]{numbers[0],numbers[1]})

我从来没有机会使用varargs。我喜欢这个解决方案。我个人更愿意使用这种方式,但我需要学习如何使用这两种方式。我从来没有机会使用varargs。我喜欢这种解决方案。我个人更愿意使用这种方法,但我需要学习如何使用这两种方法。它最初是一种公共静态双平均(双…数字),但我的作业要求编写一个名为Novaragstest的程序,该程序与第7.13节(印刷版第282页)中的7.20相同但是使用一个double数组代替varargs。一定要了解如何做到这两个方面。现在对其进行修改,使其将值作为命令行参数读取(如果存在),如果不存在,则使用原始程序中提供的数据。此已编辑代码是否仍使用varargs@Alexandre SantosIt最初是此公共静态双平均数(双…数字)但我的作业要求编写一个名为novaragstest的程序,该程序与第7.13节(印刷版第282页)中的7.20相同,但使用一个双精度数组来代替varargs。一定要了解如何做到这两个方面。现在修改它,使其将值作为命令行参数读取(如果存在),如果不存在,则使用原始程序中提供的数据。这段经过编辑的代码是否仍然使用varargs@Alexandre Santos