0503「統計学の計算をしよう」
例題
たかしくんは統計学の勉強をしている。
先生はイケメンだが、テストが難しいため、チートシートをあらかじめ作成しておきたい。
2つ以上の整数値を標準入力に入力したとき、入力した全整数値の 最大値, 最小値, 合計値, 平均値, 中央値 をそれぞれ標準出力に出力するプログラムを作成しなさい。
要件
- 平均値および中央値は、小数点以下2桁まで出力する
実行例1
標準入力
1 5 2 4 3
標準出力
5 1 15 3.00 3.00
実行例2
標準入力
12 34 56 78 90 111
標準出力
111 12 381 63.50 67.00
サンプルコード
import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Ex_05_03 { public static void main(String[] args) { // 入力 Scanner scan = new Scanner(System.in); ArrayList<Integer> nums = new ArrayList<>(); while(scan.hasNextInt()) nums.add(scan.nextInt()); // 計算 Collections.sort(nums); // 昇順ソート int max = nums.get(nums.size()-1); // 最大値 int min = nums.get(0); // 最小値 int sum = 0; // 合計値 for(int i=0; i<nums.size(); i++) sum += nums.get(i); double ave = (double) sum/nums.size(); // 平均値 double med; // 中央値 if(nums.size()%2==1) med = nums.get((nums.size()-1)/2); else med = (double) (nums.get(nums.size()/2-1) + nums.get(nums.size()/2)) / 2; // 出力 System.out.println(max); System.out.println(min); System.out.println(sum); System.out.printf("%.2f\n", ave); System.out.printf("%.2f\n", med); } }