2分探索の練習してます。
本の通りにすすめ、コンパイル実行も今までできていたのですが、
今日から実行できなくなりました。
エラーメッセージは
エラー: メイン・クラスP85_2分探索が見つからなかったかロードできませんでした
です。
VS CODE を使ってます。
コマンドラインは
PS C:\Users\user\Documents\java> cd 'c:\Users\user\Documents\java'; & 'C:\Users\user.vscode\extensions\vscjava.vscode-java-debug-0.22.0\scripts\launcher.bat' 'C:\Program Files\Java\jdk1.8.0_191\bin\java' '-agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:50057' '-Dfile.encoding=UTF-8' '-cp' 'C:\Users\user\AppData\Roaming\Code\User\workspaceStorage\6c8de917c86618c9a075425fa77ea2c4\redhat.java\jdt_ws\jdt.ls-java-project\bin' 'P85_QT'
エラー: メイン・クラスP85_2分探索が見つからなかったかロードできませんでした
PS C:\Users\user\Documents\java>
となります。
ソースコードは以下のようになっています。
何かまずいところはあるのでしょうか?
java
1import java.util.Arrays; 2import java.util.Random; 3import java.util.Scanner; 4 5public class P85_2分探索 6{ 7 static int 探索_2分探索関数( int[] x, int num, int key ) 8 { 9 int pl = 0; // 探索範囲先頭のインデックス 10 int pr = num - 1; // 末尾のインデックス 11 12 do 13 { 14 int pc = ( pl + pr ) / 2; // 中央要素のインデックス 15 if( x[pc] == key ) 16 return pc; // 探索成功 17 else if ( x[pc] < key ) 18 pl = pc + 1; // 探索範囲を後半に絞り込む 19 else 20 pr = pc - 1; // 探索範囲を前半に絞り込む 21 } while( pl <= pr ); 22 23 return -1; // 探索失敗 24 } 25 26 27 public static void main(String[] args) 28 { 29 Random rand = new Random(); 30 Scanner stdIn = new Scanner(System.in); 31 32 int num = rand.nextInt(10); 33 int[] x = new int[num]; 34 35 // 配列の初期化 36 for( int i = 0; i < x.length; i++ ) 37 x[i] = rand.nextInt(100); 38 39 // 昇順にソート 40 Arrays.sort(x); 41 42 for( int i = 0; i < x.length; i++ ) 43 System.out.println("x[" + i + "]:" + x[i] ); 44 45 System.out.print("探す値:"); 46 int key = stdIn.nextInt(); 47 48 int index = 探索_2分探索関数( x, num, key ); 49 50 if( -1 == index ) 51 System.out.println( "その値は存在しません。" ); 52 else 53 System.out.println("その値は x[" + index + "]にあります。" ); 54 55 stdIn.close(); 56 } 57}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。