http://penguin.ewu.edu/cscd501/Wint-2011/BranchAndBound/Knap01BnB.txtの main() 関数で
inp = new Scanner ( new File(lineIn) );
maxWeight = inp.nextInt();
n = inp.nextInt();
System.out.printf ("Reading data from file %s, with %d items\n",
lineIn, n);
avail = new Item[n];
pack = new boolean[n];
for ( k = 0; k < n; k++ )
{ weight = inp.nextInt();
profit = inp.nextInt();
avail[k] = new Item(weight, profit);
}
上記のコードを使用して、Bandp.txt を実行してみましたが、問題はありませんでした。小数部の値を含む txt ファイルを実行しようとしたときに問題が発生しました。
Exception in thread "main" java.util.InputMismatchException at
java.util.Scanner.throwFor(Unknown Source) at
java.util.Scanner.next(Unknown Source) at
java.util.Scanner.nextInt(Unknown Source) at
java.util.Scanner.nextInt(Unknown Source) at
Knap01BnB.main(Knap01BnB.java:199)
10 進数値を表示でき、入力の不一致が表示されないように、コードのどの部分を変更する必要がありますか。
私のtxtファイルは以下のとおりです:data.txt
100 20
12.64 8.43 4.21 8.45 17.56 8.31 13.85 12.39 19.32 14.29 4.03 17.14 8.24 1.24 0.79 5.59 6.6 12.18 12.24 1.67 6.45 19.43 9.88 8.75 18.37 15.64 8.24 5.55 3.6111111111111111111111111111111116116116116116116116111616161.45 19.43 9.88 8.75 18.37
そして、これは BandP.txt の値です:
15 7 5 25 11 45 3 12 2 7 2 6 7 10 5 4