Esercizio sulle diagonali non principali di una matrice

lorenzcollixx
buonasera a tutti!!!
Dovrei implementare un metodo che riceve una matrice quadrata di interi M e restituisce true se e solo se, partendo da ciascun elemento e della prima riga di M, ad eccezione dell’ultimo, e muovendosi in direzione sud-est, si incontra almeno un altro elemento di valore uguale ad e.
Praticamente dovrei scandirmi la diagonale principale della matrice e le sopradiagonali e verificare che lungo esse ci siano due elementi uguali..

Ho provato ad implementare il metodo in questo modo,aiutandomi con un metodo di supporto ma non capisco perche non esce cavolo:non trovo l'errore..potete dargli un occhiata?grazie;)

public static boolean verificadiagonale (int[][]m){
	for(int j=0;jalse;
}

public static boolean sottometodo (int[][]m,int j){
     for (int i = 1; i < m.length ; i++) { 
		if(m[i][j+i]==m[0][j])
			return true;
				  
	}
			return false;
		}
       
    public static void main(String[] args) {
		    int[][]m={{2,0,3,4,9},
				  {3,0,1,2,4},
				  {8,0,13,0,3},
				  {0,7,2,2,7},
				  {1,5,1,6,4}};
		boolean b=verificadiagonale (m);
		System.out.print(b);

	}





Risposte
lorenzcollixx
il primo pezzo di codice nn capisco perchè non lo visualizza.perciò lo scrivo normalmente:

public static boolean verificadiagonale (int[][]m){

for(int j=0;j if (sottometodo(m,j)){
return true;
}
return false;
}

vict85
Immagino sia Java. Non conosco Java ma ho una certa esperienza di programmazione con le matrici e ad occhio direi che dovresti testare j+i < m.lenght invece di i < m.lenght.
Nel senso che se i è la riga in cui ti trovi allora esegui l'operazione fino all'ultima riga mentre in questo caso strasbordi quando la colonna esce.

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