Created
December 10, 2017 11:29
Star
You must be signed in to star a gist
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.ArrayList; | |
import java.util.Scanner; | |
public class Main { | |
/** | |
* 入力処理 | |
* @param scan | |
* @return | |
*/ | |
public static ArrayList<Integer> input(Scanner scan) { | |
// 入力された整数はArrayList<Integer>に保管する | |
ArrayList<Integer> input_data = new ArrayList<>(); | |
System.out.println("配列の要素を入力してください"); | |
System.out.println("(改行のみの入力で入力シーケンス終了)"); | |
// いくつ入力されるかわからいので,入力のループには,whileを使う | |
while(true) { | |
// キーボードから整数入力 | |
String input = scan.nextLine(); | |
// 終了条件:改行のチェック | |
if(input.length() == 0) break; | |
try{ | |
// 文字列から整数に変換して保管する | |
input_data.add(new Integer(input)); | |
} catch(NumberFormatException e) { | |
// 整数以外が入力されると,入力されたのは整数ではな いメッセージを出力して,再び入力させる | |
System.out.println("入力されたのは整数ではない"); | |
} | |
} | |
return input_data; | |
} | |
/** | |
* 最大値を求める | |
* @param array 配列 | |
* @return 最大値 | |
*/ | |
public static int max(ArrayList<Integer> array) { | |
if (array.size() == 0) throw new IllegalArgumentException("配列に要素がないよ!"); | |
int max = array.get(0); | |
for (Integer num : array) max = (max > num) ? max : num; | |
return max; | |
} | |
/** | |
* 最小値を求める | |
* @param array 配列 | |
* @return 最小値 | |
*/ | |
public static int min(ArrayList<Integer> array) { | |
if (array.size() == 0) throw new IllegalArgumentException("配列に要素がないよ!"); | |
int min = array.get(0); | |
for (Integer num : array) min = (min < num) ? min : num; | |
return min; | |
} | |
/** | |
* 総計を求める | |
* @param array 配列 | |
* @return 総計 | |
*/ | |
public static int sum(ArrayList<Integer> array) { | |
if (array.size() == 0) throw new IllegalArgumentException("配列に要素がないよ!"); | |
int sum = 0; | |
for (Integer num : array) sum += num; | |
return sum; | |
} | |
/** | |
* 平均を求める | |
* @param array 配列 | |
* @return 平均値 | |
*/ | |
public static float mean(ArrayList<Integer> array) { | |
if (array.size() == 0) throw new IllegalArgumentException("配列に要素がないよ!"); | |
float sum = sum(array); | |
return sum / array.size(); | |
} | |
/** | |
* メイン処理. | |
* @param args | |
* @throws IllegalArgumentException 配列に何も入っていない時投げられる | |
*/ | |
public static void main(String[] args)throws IllegalArgumentException { | |
// 入力処理 | |
ArrayList<Integer> input; | |
input = input(new Scanner(System.in)); | |
// それぞれのデータを求める | |
int max = max(input); | |
int min = min(input); | |
int sum = sum(input); | |
float mean = mean(input); | |
// 出力処理 | |
System.out.printf("個数:%d, 総計:%d, 平均値:%f, 最大値:%d, 最小値:%d" | |
,input.size(),sum,mean,max,min); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment