이렇게 가깝습니다. 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 배열을 사용하고 있지만 이름 만 알고 있습니다. 두 번째 차원의 크기는 크기가 1이므로 'new int [4097] [1];'은 'new int [4097]'과 거의 같습니다. 'x'와'count2' 변수는 쓸모가 없습니다. 왜냐하면 항상 둘 다'0'이기 때문입니다. – Kayaman