在方法中编写数组

时间:2014-12-15 21:57:22

标签: java arrays methods

在代码中我想使用两种方法。在第一种方法中,我希望通过将arrlist作为参数来获得arrlist的平均数。在第二种方法中,我想通过将arrlist和mean作为参数来计算arrlist数的标准差。

当我编译代码时,我得到了

error: method getAverage in class HW_PrimitiveArrays cannot be applied to given types;
error: method standardDeviation in class HW_PrimitiveArrays cannot be applied to given types;
public static void main(String[] args) 
{

    double mean, sum;
    int[] arrlist = new int[] {5, 6, 4, 2, 9};

    System.out.println(getAverage(mean));

    System.out.println(standardDeviation(sum));
}


public double getAverage(int[] arrlist)
{
    double sum, mean;
    int i;
    sum = 0.0;
    mean = 0.0;
    for (i = 0; i < arrlist.length; i++)
    {
        sum = sum + arrlist[i];
    }
    mean = sum / arrlist.length - 1;

    return mean;
}


public double standardDeviation(int[] arrlist, double mean)
{
    double sum, temp;
    int i;
    sum = 0.0;
    temp = 0.0;
    for (i = 0; i < arrlist.length; i++)
    {
        temp = arrlist[i] - mean;
        temp = Math.pow(temp,2);
        sum = sum + temp;
    }

    sum = sum / arrlist.length - 1;
    sum = Math.sqrt(sum);

    return sum;
}

5 个答案:

答案 0 :(得分:3)

创建方法static,或实例化类的实例并使用实例调用方法。此外,您的参数不正确。因为你的第一个方法接受一个数组,而你的第二个方法看起来采用相同的数组(以及第一个方法调用的结果),如

HW_PrimitiveArrays arr = new HW_PrimitiveArrays();
mean = arr.getAverage(arrlist);
System.out.println(mean);

System.out.println(arr.standardDeviation(arrlist, mean));

答案 1 :(得分:2)

首先,正如所写的,要从getAverage致电standardDeviationmain,必须将其声明为static,因为您已经在main的静态环境中{1}}。

其次,将您声明为int[]的{​​{1}}传递给这些方法。你没有通过返回类型;你传递了输入。

arrlist

答案 2 :(得分:0)

您没有将数组传递给方法调用,请尝试:

System.out.println(getAverage(arrlist));

答案 3 :(得分:0)

使用此代替main代码:

int[] arrlist = new int[] {5, 6, 4, 2, 9};
double mean = getAverage(arrlist);
double sum  = standardDeviation(arrlist, mean);

System.out.println(mean);

System.out.println(sum);

答案 4 :(得分:0)

您正在将空双精度传递给每个方法。试试这个:

public static void main(String[] args) 
{

    double mean, sum;
    int[] arrlist = new int[] {5, 6, 4, 2, 9};

    mean = getAverage(arrlist);
    sum = standardDeviation(mean, arrlist);

    System.out.println(mean);
    System.out.println(sum);
}


public double getAverage(int[] arrlist)
{
    double sum, mean;
    int i;
    sum = 0.0;
    mean = 0.0;
    for (i = 0; i < arrlist.length; i++)
    {
        sum = sum + arrlist[i];
    }
    mean = sum / arrlist.length - 1;

    return mean;
}


public double standardDeviation(double mean, int[] arrlist)
{
    double sum, temp;
    int i;
    sum = 0.0;
    temp = 0.0;
    for (i = 0; i < arrlist.length; i++)
    {
        temp = arrlist[i] - mean;
        temp = Math.pow(temp,2);
        sum = sum + temp;
    }

    sum = sum / arrlist.length - 1;
    sum = Math.sqrt(sum);

    return sum;
}