C/Visual C - ELIMINAR REPETIDOS DE UN ARRAY

 
Vista:

ELIMINAR REPETIDOS DE UN ARRAY

Publicado por Franco (3 intervenciones) el 20/11/2020 07:22:19
Tengo este codigo que elimina los elementos repetidos de un vector. Necesito compactarlo eliminando los repetidos, pero insertando a la
derecha de cada número su frecuencia de aparición.

Ejemplo: si la lista es 0, 90, 76, 0, 67, 90, 90; la
lista compactada será 0, 2, 90, 3, 76, 1, 67, 1.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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;
			}
		}
	}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder