我需要編寫一個程序來計算用戶輸入數組的移動平均值。數組的第一個元素是窗口大小,輸入以0結尾。輸出值在小數點後面打印兩位數字。使用用戶輸入數組的移動平均值
示例輸入:3 2 4 7 7 8 11 12 0
相應的輸出:4.33 6.00 7.33 8.67 10.33
(4.33是平均的2,4,7和6是4,7,7-等平均)
這是我的代碼到目前爲止:
package movingaverage;
import java.util.Scanner;
public class MovingAverage {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
avg[0] = sum/5;
int j = 1;
for (int i = 5; i < arr.length; i++) {
sum = sum + arr[i] - arr[i - 5];
avg[j++] = sum/5;
}
}
}
我想我有循環的權利,但我不知道如何獲取數組以0
012結束
工作,但我需要它爲用戶輸入的數組工作。 – Lukas
查看更新的答案。這接受由空格分隔的數字列表。 – LppEdd
所以對於這行'final int [] numbers = Arrays.stream(SCANNER.nextLine()。trim().split(「」))。mapToInt(Integer :: parseInt).toArray();'有無論如何改變,所以我不使用數組類?這個任務是針對初學者的Java類的,我們還沒有涉及這個話題。 – Lukas