[ Foro de C ]

Eliminar repetidos

20-Nov-2020 07:18
Invitado (Franco)
0 Respuestas

Tengo este codigo que elimina los elementos repetidos de un array.
Lo que quiero hacer es insertar a la derecha de cada numero, cuantas veces se repitio.
Ejemplo: si la lista es 0, 90, 76, 0, 67, 90, 90; la
lista compactada será 0, 2, 90, 3, 76, 1, 67, 1.

¿Cómo podría hacerlo?

void elimina_repetidos(lista v, int* N){
int i,j,k,cont=0;
for(i = 0; i < *N; i++)
{
for(j = i+1; j < *N; j++)
{
if(v[i] == v[j])

{
cont=cont+1;
k = j;

while(k < *N)//Mientras k sea menor que la cantidad de elementos
{
v[k] = v[k+1];//Copiará el elemento siguiente,

//Ejemplo en posición 1 copiará el valor de la posición la dos, y en la dos la tres y así sucesivamente.

++k;//Aumentamos el contador k en 1
}

--*N;//Disminuimos el tamaño del vector ya que se eliminaron elementos repetidos.
--j;
}
}
}
}




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)