これはほぼ完了しています。 Outputです。私のメソッドは完全に動作しているので、それは問題ではありません。出力は最良の説明を与えますが、基本的に4096個のランダムな整数のリストを出力し、ユーザーの入力に数字を尋ねなければなりません。その番号で、私はそれを見つけるのに必要なループの数をユーザーに伝えなければなりません。問題は、それが正しくカウントされていないということです。出力にある数字はスキップされ、見つからない場合は両方のifステートメントが出力されます。私はすでに1d配列用にこのプログラムを構築しており、Arraylistを使用することはできません。ありがとう!2dアレイループカウントが正しく機能していません
Scannner s = new Scanner(System.in);
int[][] input = new int[5][1];
int[][] arrayone = new int[4097][1];
int loop = 0;
for (int id = 0; id < input.length; id++) {
for (int x = 0; x <input[id].length; x++) {
System.out.println("Please enter a number between " + min + " and " + max);
input[id][x] = s.nextInt();
if (min <= input[id][x] && input[id][x] <= max) {
for (int count = 0; count < arrayone.length; count++) {
for (int count2 = 0; count2 < arrayone[count].length; count2++) {
if (arrayone[count][count2] != input[id][x]) {
loop++;
}
else {
break;
}
}
}
if (input[id][x] != arrayone.length){
System.out.println("It took " + loop + " time(s) to find the number " + input[id][x]);
}
if(loop > 4096) {
System.out.println(input[id][x] + " was not found");
}
loop = 0;
}
}
更新:
私は自分自身を更新するために、以下のコードの一部を使用しているし、今印刷は4096を見つけたか、いないか、ここUpdated Outputです。以下は、私が提案に従って、コードに加えた変更です:
if(loop > 4096) {
System.out.println(input[id][x] + " was not found");
}
else{
System.out.println("It took " + loop + " time(s) to find the number " + input[id][x]);
}
loop = 0;
説明しようとしていることを説明してください。たくさんのコードを投げて「それはほとんど働いて、助けてください」と言ってはいけません。 – Kayaman
さて、私はそれを編集しました。これで十分かどうか教えてください。 – Millie
いくつかの奇妙なことがあります。 '4096'のランダムな整数が必要ですが、' 4097'のサイズの配列を作成しています。また、2D配列も使用していますが、名前だけに使用しています。 2番目の次元はサイズ '1'なので、 'new int [4097] [1];'は 'new int [4097]'とほぼ同じです。 'x'と' count2'変数は両方とも常に '0'なので、無用です。 – Kayaman