|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: May 2015
Messaggi: 26
|
[JAVA] Scambiare 2 righe di una matrice
Salve, ho questo codice per scambiare due righe di una matrice, ma perchè non funziona?
Codice HTML:
class Prova {
public static void scambia(int [][] a) {
int temp;
for (int i = 0; i<a.length; i++) {
for (int j = 0; j<a[i].length; j++) {
temp = a[0][j];
a[0][j] = a[1][j];
a[1][j] = temp;
}
}
}
public static void main(String[] args) {
int [][] a = {
{1,2},
{2,3}
};
scambia(a);
for (int i = 0; i<a.length; i++) {
for (int j = 0; j<a[i].length; j++)
System.out.print(a[i][j]+ " ");
System.out.println();
}
}
}
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: May 2014
Messaggi: 160
|
Non compila? Se si, puoi postare l'errore?
Genera un'eccezione? Se si, puoi postarla assieme allo stack? Fornisce un risultato scorretto? Se si, che risultato? |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: May 2015
Messaggi: 26
|
Compila ed esegue correttamente, ma anche dopo l'ivocazione del metodo la prima riga non viene scambiata con la seconda, cioè la matrice resta invariata.
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2008
Messaggi: 348
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: May 2014
Messaggi: 160
|
Il primo for (quello con i) è inutile e dannoso, il fatto che la matrice sia quadrata fa si che lo scambio venga eseguito due volte, quindi nessuno scambio.
Questa soluzione è valida e soprattutto molto semplificata, visto che devi scambiare direttamente le righe: Codice:
public static void scambia(int[][] a) {
int[] temp;
temp = a[0];
a[0] = a[1];
a[1] = temp;
}
|
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: May 2015
Messaggi: 26
|
Ok, grazie!
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:05.




















