Esercizio matrice: invertire colonne di indice dispari
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.
Il seguente metodo mi restituisce la matrice originaria quindi non mi inverte le colonne dispari !!chi mi aiuta???
perfavore;)
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
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];
perfetto!!!problema risolto!!!grazie mille;))