如何操作数组。 找到平均值。 初学者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