그래서 주어진 크기의 2 차원 int 배열을가집니다. 이 배열의 특정 위치에 1의 값을 지정하려고합니다. 다른 배열의 출력 값을 사용하고 있습니다. 다음과 같이 입력하십시오 :2 차원 int 배열은 하나의 값이 아닌 값의 행을 인쇄합니다.
public void printQueens(){
int k = queens[0];
board[1][queens[0]] = 1;
System.out.print(queens[1]);}
k 값은 정수 값인지 확인하기위한 것입니다. 여왕의 배열은 주어진 크기의 1 차원 정수 배열입니다. 예. {6,7,2,4}
queens = new int[NUM_QUEEN];
그것은이 bactracking 방법에서 생성된다
public void backtrack(int row){
for(int i = 0; i<BOARD_SIZE; i++){
if(canPlace(row,i)){
queens[row] = i;
if(row == NUM_QUEEN-1){
printQueens();
}
else{
backtrack(row+1);
}
}
}
}
I 기대하고 출력은 1 행 및 퀸 [0] 열에 하나 (이 경우, 7). 내가 대신 왕비의에서, 7 말을 배치하면
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
[0] 출력이 올바른지 :
이0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
그래서 내 질문은 왜 출력이 1 행에서 사람의 행입니다 이 일이 일어난거야? 정규 명시 적 정수가 작동하는 경우 암시 적 정수가 아닌 이유는 무엇입니까?
보드 [1] [k] = 1;은 전체 행을 업데이트 할 수 없습니다. [mcve]를 게시하십시오. – shmosel
내가 확인할 수있는 방법을 정확히 알지 못했습니다. 어쩌면 스크린 샷일까요? – conk
아니요, 아니요. 문제를 재현하는 데 필요한 최소한의 코드 만 포함하면됩니다. 자세한 내용은 위의 링크를 참조하십시오. – shmosel