Esercizio matrice: invertire colonne di indice dispari

lorenzcollixx
salve,mi manca questo esercizio per completare un appello!!!sembra il più banale ma è l unico che nn mi parte...vi lascio la traccia e il mio procedimento:

Scrivere un metodo CREA che riceve una matrice di interi A e restituisce una matrice B delle stesse dimensioni di A.La j-esima colonna di B sarà uguale alla j-esima colonna di A se j è pari,mentre sarà uguale all inverso della j-esima colonna di A se j è dispari.

public class esercizio33 {  
   public static int[][]crea (int[][]a){ 
  int[][]b=new int [a.length][a[0].length]; 	
  for (int j=0;j<a[0].length;j+=2){ 		
  for (int i=0;i<a.length;i++) 		   
  b[i][j]=a[i][j]; 		 		
  } 	 	 	
  for (int j=1;j<b[0].length;j+=2){ 		
  for (int i=b.length-1;i>0;i--) 		
  b[i][j]=a[i][j]; 	
  } 		 		 	
  return b;	 
  } 	
  public static void main(String[] args) {
  int[][]a={{1,0,3,9,1},{1,3,0,0,3},{0,1,6,2,12},{9,2,4,0,1},{0,5,5,11,8}}; 		   int[][]b=crea(a); 		
for (int i=0;i<b.length;i++){
 for (int j=0;j<b[0].length;j++) 				
 System.out.print(b[i][j]+"  "); 			
 System.out.println(" "); 		
}  	
}  
}


Il seguente metodo mi restituisce la matrice originaria quindi non mi inverte le colonne dispari !!chi mi aiuta???
perfavore;)

Risposte
apatriarca
Ho guardato il metodo abbastanza velocemente, ma non ha importanza in che ordine calcoli i vari indici, l'unica cosa che conta per il risultato è come utilizzi questi indici per impostare i valori nella matrice. In altri termini, se vuoi che gli elementi della colonna siano invertiti, devi settare i valori in modo che gli indici delle due matrici NON siano uguali. Dovrai cioè avere qualcosa come:
b[b.length - i - 1][j] = a[i][j];

lorenzcollixx
perfetto!!!problema risolto!!!grazie mille;))

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.