Ayuda Arrays!!!

keka
23 de Agosto del 2005
Hola!! Necesito hacer un metodo que lea un array y quite los que estan repetidos. Yo he hecho parte pero tengo un pequeño lio con los indices y no me funciona. El codigo es el siguiente:

public void quitarRepetidos(int [] numeros){
System.out.println("nEscribe el array actual :");
escribeArrayInt(numeros);

int indice=0;

for(int i=0,j=1 ; i<numeros.length && j<numeros.length; i++ , j++){
if(numeros[i]==numeros[j]){
for(int k=j+1 ; k<numeros.length ;k++){
numeros[k-1]= numeros[k];
j++;

}
numeros[numeros.length-1]=0;
}
}

System.out.println("nNuevo array :");
escribeArrayInt(numeros);

}
La unica norma es no utilizar arrays auxiliares. ¿Alguien puede ayudarme?Gracias

fady
23 de Agosto del 2005
normal que no te funcione, estas continuamente cambiando el valor de los indices del for y eso es malisimo xDDD, lo que no me queda claro si estas usando arrays estaticos, cuando encuentras un elemento repetido lo quitas pero el hueco que deja con que lo rellenas?? con cero?? pero en el mismo sitio que lo encontraste o que??? saludos

keka
23 de Agosto del 2005
Hola!! se trataba de :
Programar un método que reciba como parámetro un array de números enteros, y elimine los números consecutivos iguales, sin utilizar ningún array auxiliar, completando el array con ceros al final si es necesario.
La verdad es que me exprese un poco mal al pedir la ayuda.
Gracias por haber intentado ayudarme.Por fin lo consegui :)

felix
23 de Agosto del 2005
creoque deverias usar dos arrays uno origen (original) y uno destino (sin repeticiones )

y deves hacer una funcion esrepetido(int numero, int array[]);

la funcion devolvera un boolean

y ahria

int j = 0;
for (int i = 0;i<array.length; i++)
{
if( ! esrepetido(array[i], array2))
{
array[j] = array[i];
j++;
}
}

con esto obtendrias un array2 con los numeros no repetidos.. creo que funcionara

Saludos

felix
23 de Agosto del 2005
la funcion esrepetido es solo una busqueda secuencial

boolean esRepetido(int numero, int array[])
{
for(int i = 0; i< array.length;i++)
{
if (numero == array[i])
{
return true;
}
}
return false;
}

la cual retorna treu si el numero se encuentra ya y falso si aun no se encuentra.