Pages: [1] 2   Go Down
Print
Author Topic: Mi esce fuori dall'array  (Read 2823 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« on: 24-02-2009, 18:46:07 »

In questo esercizio forse non viene effettuato un controllo su qualche colonna?? come fare in caso?

Code:
/*Questo programma è un metodo che prende in input una matrice frastagliata e ritorna un boolean se esiste una colonna con più di un elemento uguale a se stesso */


class elementocolonna
{
public static boolean prendi(int[][] S)
{

boolean esiste=true;
for (int i=0; i<S.length; i++)
{
for (int k=0;k<S[i].length; k++)
{
    for (int r=0; r<(S.length-1); r++)
{

for (int r1=r+1; r1<S.length; r1++)
{


if(S[r][k]==S[r1][k])
return esiste;
}

}


}

}
return !esiste;
}



     public static void main(String []args)
{
int [][]S={{1,2,3,4},
{5,6},
{7,8,9,10,11}};

System.out.println(prendi(S));
}

}
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #1 on: 24-02-2009, 19:27:08 »

Qualcuno mi aiuti........ 
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
thomas89
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 341



« Reply #2 on: 24-02-2009, 19:50:41 »

semplice.. quando fai
Code:
if(S[r][k]==S[r1][k])
per esempio tra la prima e la seconda riga con la 3 colonna.. beh già dalle mie parole lo dovresti capire.. la seconda riga non ha la terza colonna.. x qst ti da l'errore 
Logged

Solo due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi.
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #3 on: 24-02-2009, 19:52:18 »

So qual'è l'errore
è che nn so come risolverlo, cioè come fare l'ulteriore controllo.......siccome è una giornata che ci provo, potreste scrivere la soluzione che vorrei passare ad altro?
Grazie
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
thomas89
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 341



« Reply #4 on: 24-02-2009, 19:54:49 »

prova a mettere qualke if prima di fare il paragone.. x es if(k < S[r1].length) se è minore procedi col paragone, se no niente, vai avanti col prossimo elemento.. ke darà sempre lo stesso esito fino a qnd nn cambierai riga  ok
Logged

Solo due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi.
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #5 on: 24-02-2009, 19:57:13 »

Lo avevo già pensato così.....ma stranamente esce sempre fuori prova......


Code:
/*Questo programma è un metodo che prende in input una matrice frastagliata e ritorna un boolean se esiste una colonna con più di un elemento uguale a se stesso */


class elementocolonna
{
public static boolean prendi(int[][] S)
{

boolean esiste=true;
for (int i=0; i<S.length; i++)
{
for (int k=0;k<S[i].length; k++)
{
    for (int r=0; r<(S.length-1); r++)
{

for (int r1=r+1; r1<S.length; r1++)
{
if(k<S[r1].length)

if(S[r][k]==S[r1][k])
return esiste;
}

}


}

}
return !esiste;
}



     public static void main(String []args)
{
int [][]S={{1,2,3,4},
{5,6},
{7,8,9,10,11}};

System.out.println(prendi(S));
}

}
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
simOne_fLuo
Guest
« Reply #6 on: 24-02-2009, 20:03:31 »

scusa ma il problema dov'è? è giusto.. co quell'if che ti ha suggerito thomas
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #7 on: 24-02-2009, 20:06:30 »

Se copi il codice l'ultimo che ho messo con l'if suggerito da thomas vedi che compila ma all'esecuzione dà errore
IndexoutofBounds come prima...........
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
simOne_fLuo
Guest
« Reply #8 on: 24-02-2009, 20:25:26 »

prova a mettere nel l'ultimo for invece che:

for (int r1=r+1; r1<S.length; r1++)

for (int r1=r+1; r1<S[0][].length; r1++)
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #9 on: 24-02-2009, 20:32:26 »

Nada.....così dà errore di compilazione......espressione illegale.
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
simOne_fLuo
Guest
« Reply #10 on: 24-02-2009, 21:12:31 »

aah certo prova a cambiare sempre quel for con

for (int r1=r+1; r1<S[r+1].length; r1++)
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #11 on: 24-02-2009, 21:21:56 »

Mh......no purtroppo.....ammazza ma sto esercizio mi fa proprio venire i nervi!!
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
thomas89
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 341



« Reply #12 on: 24-02-2009, 21:50:35 »

  Cmq credo ke quell'if ke ti ho suggerito io lo dovresti mettere casomai PRIMA del for cn variabile r1.. prova, però rivedi il programma cn qst if nn compilare subito ed eseguire  ok
Logged

Solo due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi.
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #13 on: 24-02-2009, 22:21:30 »

Mh....non lo so......come può funzionare un if(k<S[r1].length)
prima di un ciclo for che dichiara r1??? se ancora non inizializzo r1 come può funzionare??
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #14 on: 24-02-2009, 22:26:06 »

non può  domani vedo di fare l'esercizio e lo posto..adesso è tardi 
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
Pages: [1] 2   Go Up
Print
Jump to: