Also habe ich ein zweidimensionales int-Array einer gegebenen Größe. Ich möchte einer bestimmten Stelle in diesem Array den Wert 1 zuweisen. Ich verwende den Ausgabewert von einem anderen Array. so etwas wie diese:Zweidimensionales int-Array druckt eine Reihe von Werten und nicht nur eine
public void printQueens(){
int k = queens[0];
board[1][queens[0]] = 1;
System.out.print(queens[1]);}
Die k-Wert ist es sicherzustellen, dass es ist ein Integer-Wert. Das Array der Königin ist ein eindimensionales Ganzzahl-Array mit gegebener Größe. z.B. {6,7,2,4}
queens = new int[NUM_QUEEN];
Es ist in einem bactracking Methode erstellt:
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);
}
}
}
}
Der Ausgang ich erwarte eine Eins in der ersten Reihe und Königinnen [0] Spalte (in diesem Fall 7). Die Ausgabe ist eine Reihe von Einsen in dieser ersten Reihe:
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
Wenn ich sage platzieren, 7, statt Königinnen [0] Ausgabe korrekt ist:
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
Also meine Frage ist, warum ist das passiert? Wenn eine reguläre explizite Ganzzahl funktioniert, warum wird eine implizite Ganzzahl nicht verwendet?
'board [1] [k] = 1;' kann möglicherweise keine ganze Zeile aktualisieren. Bitte poste ein [mcve]. – shmosel
Nicht genau sicher, wie ich sonst noch überprüfen könnte. Vielleicht ein Screenshot? – conk
Nein, bitte nein. Geben Sie nur den minimalen Code ein, der zum Reproduzieren des Problems erforderlich ist. Siehe den obigen Link für weitere Informationen. – shmosel