在代码中我想使用两种方法。在第一种方法中,我希望通过将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;
}
答案 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
致电standardDeviation
和main
,必须将其声明为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;
}