BohYoh.comトップページへ

Javaによるアルゴリズムとデータ構造

戻る  

演習3-1の解答

 List 3-3のメソッドseqSearchSen を、while文ではなくfor文を用いて書きかえよ。

// 演習3-1 // 線形探索(番兵法:for文を用いて実現) import java.util.Scanner; class SeqSearchSenFor {   //--- 配列aの先頭n個の要素からkeyと一致する要素を線形探索(番兵法)---//   static int seqSearchSen(int[] a, int n, int key) {     int i;     a[n= key;          // 番兵を追加     for (i = ; a[i!= key; i++)       ;     return i == n ? -: i;   }   public static void main(String[] args) {     Scanner stdIn = new Scanner(System.in);     System.out.print("要素数:");     int num = stdIn.nextInt();     int[] x = new int[num + 1];        // 長さnum + 1の配列     for (int i = 0; i < num; i++) {       System.out.print("x[" + i + "]:");       x[i= stdIn.nextInt();     }     System.out.print("探す値:");      // キー値の読込み     int ky = stdIn.nextInt();     int idx = seqSearchSen(x, num, ky);    // 配列xから値がkyの要素を探索     if (idx == -1)       System.out.println("その値の要素は存在しません。");     else       System.out.println("その値は" "x[" + idx + "]にあります。");   } }


戻る