我正在处理的任务的一部分是让我通过一个方法传递数组,该方法一次计算最后一个数组5个数字中元素的平均值。
例如,假设Array1由{1,2,3,4,5,6}组成 该方法将计算{1,2,3,4,5}的平均值,然后计算{2,3,4,5,6}
然后该方法将获取这些平均值并将它们放入一个新数组并将该数组传回主数据。
我只是不确定从哪里开始。我能逻辑思考的最多是我需要使用嵌套循环。
是的,这是我编程的第一年。
答案 0 :(得分:0)
欢迎来到Stack Overflow,Tony!在Stack Overflow,我们真的鼓励用户提供一些努力或研究的证据,在以后的帖子中记住这一点:)
让我们从逻辑上思考这个问题。 / em>
我们首先要从array[0]
到array[n-2]
得到数组的平均值(你使用n-2,因为索引n-1实际上是持有价值' 6')。
第二部分。从array[1]
开始,然后转到array[n-1]
一旦我们知道了这一点,我们就可以取平均值并将其返回。
这里不需要嵌套循环,编程时记住这个概念,并保存许多眼泪:保持简单
以下是发布的类似问题:How to minpulate arrays and find the average
这是我提出的解决方案。当您处于程序的设计阶段时,您需要考虑如何使代码可重用。可能有一段时间您将拥有复杂的程序,而且许多部件需要使用不同的数据执行相同的操作。这被称为代码可重用性,掌握它将使您的生活更轻松。
public static void main(String[] args) {
int [] arr = new int [] {1, 2, 3, 4, 5, 6}; //Stores the numbers we need to average
//We get the Lower-Average by starting at index 0, going to index n-2
System.out.println ("Lower-Average: " + average(0, arr.length - 2, arr));
//We get the Upper-Average by starting at index 1, going to index n-1
System.out.println ("Upper-Average: " + average(1, arr.length - 1, arr));
}
/*
* This method accepts a start index, end index, and an array to operate on
* The average is calculated iteratively and returned based on number of elements provided
*/
public static double average (int startIndex, int endIndex, int [] array) {
double avg = 0; //Stores the average
int counter; //Used to hold number of elements iterated through
for (counter = startIndex; counter <= endIndex; counter++) {
avg += array[counter]; //Summation for the average
}
return avg = avg / counter; //Calculate the average and return it to caller
}
<强>输出:强>
Lower-Average: 3.0
Upper-Average: 3.3333333333333335