ユーザーが入力した配列で移動平均を計算するプログラムを書く必要があります。配列の最初の要素はウィンドウサイズで、入力は0で終了します。出力値は小数点以下2桁で表示されます。ユーザー入力配列を使った移動平均
例入力: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