In questi giorni mi son messo a lavoro cercando di correggere gli errori del metodo PostoErrato, per far questo mi sono avvalso di un terzo array ( c ) che mi tiene conto dell'indice in cui le posizioni dei numeri sono corrette, ossia quando a[i]==b[j]
Vi riporto il corpo dei metodi:
In questo modo riesco a risolvere problemi del tipo:codice:int esatto=0; for (int i=0; i<a.length; i++){ if (a[i]==b[i]){ c[i]=1; esatto++;} } int errato = 0; for(int i=0; i<a.length; i++){ if (c[i]==1) { continue;} for(int j=0; j<b.length; j++){ if (c[j]==1){continue;} { if (a[i]==b[j]) errato++; } } }
a={1,3,0,3,2}
b={2,3,3,1,2}
Di fatti ho come output:
Posizioni corrette:2
Posizioni errate:2
Il problema si crea quando ho array del tipo:
a={1,3,0,3,2}
b={2,0,3,1,2}
O viceversa; in questo caso come output ho 4 posizioni errate invece che 3, poiché l'oggetto presente in b[2] me lo conta due volte.
Come posso risolvere questo problema? Mi potreste dare qualche consiglio?
Ringrazio anticipatamente tutto coloro che mi risponderanno

Rispondi quotando