プログラム作成問題の第6回となります。
※この出題形式に関しては答えは1つではありません。
解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正解として下さい。
問題
int型の2次元固定配列を作成し、要素の最大値と最小値を出力するプログラムを作成せよ
解答例1
package jp.ssie.practice; public class Exercise006 { public static void main(String[] args) { int[][] arr = { { 0, 1, 9, 10 }, { 4, 6, 8, 10 } }; int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { if (max < arr[i][j]) { max = arr[i][j]; } if (min > arr[i][j]) { min = arr[i][j]; } } } System.out.println("最大は" + max + "、最小は" + min + "です。"); } }
通常のFor文を使用した例です。
解答例2
package jp.ssie.practice; public class Exercise006 { public static void main(String[] args) { int[][] arr = { { 0, 1, 9, 10 }, { 4, 6, 8, 10 } }; int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; for (int[] row : arr) { for (int num : row) { max = Math.max(max, num); min = Math.min(min, num); } } System.out.println("最大は" + max + "、最小は" + min + "です。"); } }
拡張For文を使用した例です。