我正在尝试让这个程序调用函数arrayAvg,其数组为{1,2},并返回平均值的两倍(即1.5)。
这就是我的代码目前的样子。有人知道我哪里错了吗? :X
import java.util.*;
public class Main
{
public static double arrayAvg(int[] array){
int total = 0;
int count = 1;
double average = 0.0;
for(int item : array){
total=total+item;count=count+1;
}
double dTotal = (double)total;
double dCount = (double)count;
average = (dTotal/dCount);
return average;
}
public static void main(String args[]){
int[] input = {1,2};
double result = arrayAvg(input);
System.out.println(result);
}
}
答案 0 :(得分:2)
将计数为0而不是1 。
答案 1 :(得分:1)
您确定count
的逻辑是错误的。它应该从0开始而不是1.
另外,你可以简单地获得数组长度。
答案 2 :(得分:1)
为什么需要数数?你需要在数组中基本上需要数量的值来划分它。 只需使用arry.length,这将返回数组中元素的数量并将其用于除法
int len = array.length;
double dTotal = (double) total;
double dCount = (double) len;
average = (dTotal / dCount);
return average;
答案 3 :(得分:0)
实际上你的逻辑存在问题, 你已经初始化了
int count = 1;
这是错的, 你应该将该变量初始化为0,如下所示
int count = 0;
以下是更改代码
public class Main {
public static double arrayAvg(int[] array) {
int total = 0;
int count = 0;
double average = 0.0;
for (int item : array) {
total = total + item;
count = count + 1;
}
double dTotal = (double) total;
double dCount = (double) count;
average = (dTotal / dCount);
return average;
}
public static void main(String args[]) {
int[] input = { 1, 2 };
double result = arrayAvg(input);
System.out.println(result);
}
}
<强>输出强>
1.5