Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 1, 9 CFU => Topic started by: Daréios89 on 06-04-2009, 14:51:09



Title: Non capisco perchè il boolean è false qui.
Post by: Daréios89 on 06-04-2009, 14:51:09
Non capisco perchè non mi restituisce true questo metodo.

Code:
/*Scrivere un metodo che prenda in input una matrice A di int ed un intero m, e restituisca un
boolean che indichi se esistono due righe di A che condividono almeno m elementi (cioè devono
essere presenti in entrambe le righe, anche in posizioni differenti).

N.B.: Si supponga che ogni singola riga di A contenga elementi distinti.*/

class eserciziodifficile
{
public static void main(String [] args)
         {
int m=3;

int [][] A={{2,4,5,6,7},
{2,67,4,7,21},
{4,43,2,89,5}};

System.out.println(prendi(A,m));
}


public static boolean prendi(int [][] A, int m)
{
int cont=0;
boolean esistono=false;

for(int r=0; r<A.length-1; r++)
{
for(int r1=r+1; r1<A.length; r1++)
{

for(int k=0; k<A.length; k++)
{
for(int k2=0; k2<A.length; k2++)
if(A[r][k]==A[r1][k2])
cont++;
if(cont>=m)
esistono=true;
}
     cont=0;
}

}
return esistono;
}
}


Title: Re:Non capisco perchè il boolean è false qui.
Post by: Serginho21 on 06-04-2009, 15:04:00
l'errore dovrebbe essere nel terzo e quarto for.
dovrebbe essere così: k<A[r].length e k2<A[r1].length e non come hai scritto tu


Title: Re:Non capisco perchè il boolean è false qui.
Post by: Daréios89 on 06-04-2009, 15:08:21
Quote
l'errore dovrebbe essere nel terzo e quarto for.

Hai ragione, ora ho capito, era perchè la dimensione impediva alla colonna di andare oltre, grazie mille.....!


Title: Re:Non capisco perchè il boolean è false qui.
Post by: atrix0ne on 06-04-2009, 15:16:09
esatto,cmq visto ke nn è frastagliato nelle k puoi mettere k<A[0].length non necessariamente k<A[r] .wink


Title: Re:Non capisco perchè il boolean è false qui.
Post by: Daréios89 on 06-04-2009, 15:18:55
Ah, non lo sapevo, va benissimo Atrix, grazie anche a te!!!


Title: Re:Non capisco perchè il boolean è false qui.
Post by: Serginho21 on 06-04-2009, 15:21:28
prego ;)