问题描述
我有一个家庭作业,我想知道,如果有人可以帮助我,因为我是新来的Java和编程很憋屈的一个问题。现在的问题是:
I have a homework assignment and I was wondering if anyone could help me as I am new to Java and programming and am stuck on a question. The question is:
第一种方法找到一个整数数组的元素的平均
The first method finds the average of the elements of an integer array:
public double average(int[] data)
即,给定一个整数数组,数据,计算出其元件的平均是返回的平均值。例如,平均{1,3,2,5,8}为3.8。
That is, given an integer array, data, calculate the average of its elements are return the average value. For example, the average of {1, 3, 2, 5, 8} is 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预期的错误消息。任何帮助将是AP preciated。
When compiling it I get an error message at the int i=0
part saying '.class expected'. Any help would be appreciated.
推荐答案
使用增强的话会更好:
int sum = 0;
for (int d : data) sum += d;
这可能会给你一个巨大的惊喜另一件事情是错误的结果,你会从
Another thing that will probably give you a big surprise is the wrong result that you will obtain from
double average = sum / data.length;
原因:在右边你有整数除法和Java不会自动将其提升到浮点除法。它会计算总和/ data.length的整数商
然后才推动该整数到双击
。一个解决方案是
Reason: on the right-hand side you have integer division and Java will not automatically promote it to floating-point division. It will calculate the integer quotient of sum/data.length
and only then promote that integer to a double
. A solution would be
double average = 1.0d * sum / data.length;
这将强制分红成双击
,它会自动传播到除数。
This will force the dividend into a double
, which will automatically propagate to the divisor.
这篇关于如何操作数组。求其平均值。初级的Java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!