問題
4つの整数をコンソールに入力して、4つの値のうち3番目に大きい値をコンソール表示するプログラムを作ってください。
答えはこちら
ヒント
ヒント1:ロジックの考え方
4つの要素が入る配列を作って、コンソール入力した値をその配列に格納します。
その配列を昇順にソートして、3番目の要素を表示する。
ヒント2:ソート方法
ソート方法は挿入ソートや選択ソート任意のものを自分で作りましょう。
答え
答え
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
package javalogic; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.NoSuchElementException; import java.util.StringTokenizer; public class JavaLogic11 { public static void main(String[] args) throws Exception { //4つの整数をコンソールに入力して、4つの値のうち3番目に大きい値をコンソール表示するプログラムを作ってください。 BufferedReader br; StringTokenizer st; int check = 0; //エラーが発生した時チェックするための値 int array [] = new int[4]; //4つの数字を入力する配列 do{ br = new BufferedReader(new InputStreamReader(System.in)); st = new StringTokenizer(br.readLine()); try { for(int i=0; i<array.length; i++) { array[i] = Integer.parseInt(st.nextToken()); //4回繰り返し配列に数字を入れる } for(int i=0; i<array.length; i++) { for(int j=i+1; j<array.length; j++) { //i番目とこれより後ろの配列を比較 if(array[i] > array[j]) { int a = array[i]; array[i] = array[j]; //前の数が後の数より大きい場合は順番を変える array[j] = a; } } } System.out.println("3番目に大きい値: "+array[2]); }catch(NumberFormatException e) { System.out.println("4つの整数を入力してください"); check = 1; //数字なくて文字が入って来た時再入力してもらえるようにcheckを1に変える }catch(NoSuchElementException e) { System.out.println("4つの整数を入力してください"); check = 1; //2つより少ない数が入って来た時再入力してもらえるようにcheckを1に変える } }while(check == 1); //checkが1なら反復 } } |
コメント