编写一个程序,其中包含两个重载方法,这些方法返回具有以下标题的数组的平均值:
public static int average(int[] array)
public static double average(double[] array)
我的程序包含错误
list2[i] = sc.nextDouble(); // possible lossy conversion from double to int
return average; // possible lossy conversion from double to int
不确定我在我的方法中声明的问题是什么需要声明我不知道为什么我的双输入会给我这个错误
import java.util.Scanner;
public class Lab7A {
public static void Main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter 10 Integer values: ");
int list[] = new int[10];
for (int i = 0; i < list.length; i++) {
list[i] = sc.nextInt();
}
double avg1 = average(list);
System.out.println("Average of First Array: " + avg1);
System.out.println();
System.out.print("Enter Ten Double Values: ");
double list2[] = new double[10];
for (double i = 0; i < list2.length; i++) {
list2[i] = sc.nextDouble();
}
double avg2 = average(list2);
System.out.println("Average of Second Array: " + avg2);
System.out.println();
}
public static int average(int[] list) {
double average = 0;
double total = 0;
for (int i = 0; i < list.length; i++) {
total = total + list[i];
}
average = total / list.length;
return average;
}
public static double average(double[] list2) {
double average = 0;
double total = 0;
for (int i = 0; i < list2.length; i++) {
total = total + list2[i];
}
average = total / list2.length;
return average;
}
}
答案 0 :(得分:1)
您的average(double[])
方法正在尝试使用double
作为数组索引,但Java仅允许int
作为数组索引。这是“从double到int的可能有损转换”的来源。
其他所有内容都应该是double
,但请将您的索引d
声明为int
以删除此错误。
此外,在该方法的for
循环中,条件应为d < list2.length
而不是d < 5
。
此外,int
值的平均值可能不一定是int
。在average(int[])
方法中,声明它返回double
,并声明average
为double
。变量avg1
也需要double
中的main
。