|
|
|
![]() |
|
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: 308
|
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: 17:02.