如何操作数组。 找到平均值。 初学者Java

我有一个家庭作业,我想知道是否有人可以帮助我,因为我不熟悉Java和编程,而且我遇到了问题。 问题是:

第一种方法查找整数数组的元素的平均值:

public double average(int[] data) 

也就是说,给定一个整数数组,数据,计算其元素的平均值是否返回平均值。 例如,{1,3,2,5,8}的平均值为3.8。

这是我到目前为止所做的:

 public double average(int[] data) { int sum = 0; while(int i=0; i < data.length; i++) sum = sum + data[i]; double average = sum / data.length;; System.out.println("Average value of array element is " " + average); } 

在编译它时,我在int i=0部分得到一条错误消息,说’.class expected’。 任何帮助,将不胜感激。

使用增强版for会更好:

 int sum = 0; for (int d : data) sum += d; 

另一件可能会给你带来惊喜的是你将获得的错误结果

 double average = sum / data.length; 

原因:在右侧,您有整数除法,Java不会自动将其推广到浮点除法。 它将计算sum/data.length的整数商,然后才将该整数提升为double 。 解决方案是

 double average = 1.0d * sum / data.length; 

这将强制分红为double ,这将自动传播到除数。

 -while(int i=0; i < data.length; i++) +for(int i=0; i < data.length; i++) 

Java 8流媒体api提供了一个优雅的选择:

 public static void main(String[] args) { double avg = Arrays.stream(new int[]{1,3,2,5,8}).average().getAsDouble(); System.out.println("avg: " + avg); } 

试试这种方式

 public void average(int[] data) { int sum = 0; double average; for(int i=0; i < data.length; i++){ sum = sum + data[i]; } average = (double)sum/data.length; System.out.println("Average value of array element is " + average); } 

如果你需要返回平均值,你需要使用关键字而不是void关键字,需要返回值返回平均值

 public double average(int[] data) { int sum = 0; double average; for(int i=0; i < data.length; i++){ sum = sum + data[i]; } average = (double)sum/data.length; return average; } 

找到一些数字的平均值的最佳方法是尝试 ……

 public static void main(String[] args) { average(1,2,5,4); } public static void average(int...numbers){ int total = 0; for(int x: numbers){ total+=x; } System.out.println("Average is: "+(double)total/numbers.length); } 

好吧,要计算数组的平均值,可以考虑使用for循环而不是while循环。

所以根据你的问题让我假设一个数组为arrNumbers (这里我正在考虑与你的问题中相同的数组元素)

 int arrNumbers[] = new int[]{1, 3, 2, 5, 8}; int sum = 0; for(int a = 0; a < arrNumbers.length; a++) { sum = sum + arrNumbers[a]; } double average = sum / arrNumbers.length; System.out.println("Average is: " + average); 

您也可以使用scanner类。 它留给你。

几个问题:

while应该是for您没有返回值,但是您已声明返回类型为double

 double average = sum / data.length;; 

sum和data.length都是整数,因此除法将返回一个int – 检查您的类型

双分号,可能不会打破它,只是看起来很奇怪。

如果我们想要添加一个数组的数字并找到它们的平均值,请遵循这个简单的方法! …..

 public class Array { public static void main(String[] args) { int[]array = {1,3,5,7,9,6,3}; int i=0; int sum=0; double average=0; for( i=0;i