想法是创建一个静态的方法,它将计算部分填充数组的平均工资。假设numEmployees保存数组中具有有效数据的元素数。 numEmployees被传递给方法。
public static double getAverage(double[ ] numEmployees)
{
double total = 0;
double average;
for (int i = 0; i < numEmployees.length; i++)
total += numEmployees[i];
average = total / numEmployees.length;
return average;
}
我是否需要在方法中添加一个对填充的数组进行计数的部分? 像:
int count=0;
int p=0;
if (numEmployees[p]>0)
{
count++;
p++;
}
或者我应该在消息中的for循环中添加一个部分,并将我的总数改为:
for (int i = 0; i < numEmployees.length || numEmployees>0; i++)
total += numEmployees[i];
远远低于
average = total / i;
答案 0 :(得分:5)
public static double getAverage(double[] numEmployees)
{
double total = 0;
double count = 0;
for (int i = 0; i < numEmployees.length; i++)
if (numEmployees[i] > 0) {
total += numEmployees[i];
count++;
}
return total / count;
}
请注意,如果在第一个0之后不能再有值,那么在检测到一个循环时结束循环也是很好的。我在这里写的内容会查找大于0的任何值,无论0发生在哪里。