如何解决此错误(Java方法+数组)?

时间:2018-10-27 11:08:25

标签: java arrays

我想制作一个程序,该程序在通过方法填充main()中的数组之后,返回该数组中包含的元素的算术平均值。

当我调用执行该过程的方法(使用System.out.print的行)时,出现了错误,表示该方法不适用于其中的参数。但这应该导致int数组。

代码

        import java.util.Scanner;

        public class MainClass {

        public static void main(String[] args) {        
            System.out.println(meanArray (2, 6, 9, 19, 1));
        }

        static int meanArray (int [] a) {
            Scanner inputLine = new Scanner(System.in);

            int numbers;
            int start;
            int sum = 0;
            int mean;

            numbers = inputLine.nextInt();

            for (start = 0; start < numbers; start++) {
                a[start] = inputLine.nextInt();
                sum = sum + a[start];
            }

            mean = sum/numbers;

            return mean;    
        }

}

3 个答案:

答案 0 :(得分:0)

致电时

public static Something meanArray(int a, int b, int c, int d, int e) {

它期望一种具有签名之类的方法

public static Something meanArray(int... a) {

您最有可能的目的是

meanArray(1,2,4,3)

它接受可变数量的参数。

答案 1 :(得分:0)

此代码中的问题是您创建了一个将整数数组作为参数的方法,并且在调用该方法时发送了不同的整数值,但没有发送整数数组。而不是致电;

int a[]={1,2,3,4};
meanArray(a);

您应该声明整数数组并将变量传递给方法。 最好先声明数组变量,然后将其传递给以下函数:

for(start=0;start<a.length;start++){
sum+=a[start];
}

并且您不需要在用于对数组元素求和的方法中声明另一个数字变量(lenth是内置函数来返回数组的大小),请在meanArray()内尝试以下操作:

{{1}}

答案 2 :(得分:0)

如果要测试代码中的数字,请使用以下方法声明并初始化数组: int[] array ={2,6,9,19,1};,然后致电meanArray(array);

如果要从控制台测试任意一组数字,则需要使用以下方式声明数组: int[] array = new int[5]; // * 5指出您将从控制台输入的数字*

然后需要将循环间隔更改为:start < array.length;