我想制作一个程序,该程序在通过方法填充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;
}
}
答案 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;