配列 例題

入力データの蓄積

配列を使うと複数の入力データを記憶しておくことができます。次のプログラムは10個整数を読み込み、それを配列に記憶しておき、入力された順番とは逆の順番で表示するプログラムです。

// 配列の例題 入力された順とは逆の順番で値を表示
import java.io.*;
import java.text.*;

class Ex_array_01 {
  public static void main(String args[]){

// 変数宣言
    int i, N;
    int ID[] = new int[10];
    String s;
    Number Num;
    DecimalFormat DF = new DecimalFormat();
    BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
    
    System.out.println("入力されたデータを逆順で表示");

// データの入力
    for (i = 0; i <= 9; i++){
      System.out.print(i + "番目のデータを入力してください : ");
      try {
        s = BR.readLine();
        Num = DF.parse(s);
        N = Num.intValue();
      }
      catch (Exception e){ N = 0;}
      ID[i] = N;
    }
    
    System.out.println("-------------------------------------------");

// データの出力
    for(i = 9; i >= 0; i--){
      System.out.println(i + "番目のデータは " + ID[i] + "です。");
    }
  }
}

入力データの合計、平均、各データと平均との差

配列を使うことでデータを蓄積できるのでデータを加工して得られた値と元のデータを比較することも可能になります。

次のプログラムは入力されたデータをいったん配列に記憶し、そのデータから合計と平均を求め、最後に各データと平均値との差を表示するものです。

// 配列の例題 入力データの合計、平均、平均との差
import java.io.*;
import java.text.*;

class Ex_array_02 {
  public static void main(String args[]){

// 変数宣言
    int i, N, Gokei;
    int ID[] = new int[10];
    double Heikin;
    String s;
    Number Num;
    DecimalFormat DF = new DecimalFormat();
    BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
    
    System.out.println("入力データの保存、合計、平均、平均との差\n");

// データの入力
    for (i = 0; i <= 9; i++){
      System.out.print((i + 1) + "個目のデータを入力してください :");
      try {
        s = BR.readLine();
        Num = DF.parse(s);
        N = Num.intValue();
      }
      catch (Exception e) {N = 0;}
      ID[i] = N;
    }

// 合計計算
    Gokei = 0;
    for (i = 0; i <= 9; i++){
      Gokei += ID[i];
    }

// 平均値算出
    Heikin = Gokei / 10.0;
    System.out.println("\n平均値は " + Heikin + "です。\n");
    System.out.println("平均値と入力データの差を表示します。\n");

// 平均値と入力データの差
    for (i = 0; i <= 9; i++){
      System.out.println((i + 1) + "個目のデータは " + ID[i] + "\t差は " + (Heikin - ID[i]));
    }
  }
}

最大値検出

次のプログラムは配列にデータを入力しておき、その中から最大値を検出するものです。

// 配列の例題 最大値の検出
import java.io.*;
import java.text.*;

class Ex_array_03 {
  public static void main(String args[]){
// 変数宣言
    int i, Max, N;
    int ID[] = new int[10];
    String s;
    Number Num;
    DecimalFormat DF = new DecimalFormat();
    BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
    
    System.out.println("配列を使った最大値検出");

// データの入力
    for (i = 0; i <= 9; i++){
      System.out.print((i + 1) + "個目のデータは? :");
      try {
        s = BR.readLine();
        Num = DF.parse(s);
        N = Num.intValue();
      }
      catch (Exception e){ N = 0; }

// 入力データの保存
      ID[i] = N;
    }
// 仮の最大値設定
    Max = ID[0];

// 最大値の検出
    for (i = 1; i <= 9; i++){
      if (ID[i] > Max) {
        Max = ID[i];
      }
    }
    
    System.out.println("最大値は" + Max + "でした");
  }
}