Eliminar elementos repetidos

Sergio
24 de Abril del 2005
Hola, soy novato, y quisiera que me orientaran sobre como eliminar elementos repetidos de un array.
por ejemplo si el array tiene los valores
11 11 12 23 23 44 56 77 77
que imprima
11 12 23 44 56 77
De antemanos gracias.

Azazel_xes
24 de Abril del 2005
Umm creoq ue lo primero es saber que quieres hacer si elimnar los registros que esten repetidos o si quieres imprimir el arreglo sin que muestre los que estan repetidos

Creo que esto puede ayudarte con lo de la impresion
//no se cual sea el nombre de tu arreglo pero yo lo llamare arreglo para que te sea más facil
si tu arreglo es de 10 elementos
int i;

for (i=0;i<=9;++){//siemre que llenes o busques en todo un arreglo debes de poner el tamaño de tu arreglo -1 por que acuerdate que los arregos empiezan en 0
if(arreglo[i] !=arreglo[i+1])
printf("%i",arreglo[i];
}

NOTA; ESTE CODIGO SOLO TE VA A SERVIR PARA AREGLOS COMO EL QUE PONES AQUI DONDE LOS ELEMENTOS REPETIDOS ESTAN ACOMODADOS
DE LO CONTRARIO NO TE A VA FUNCIONAR POR QUE TIENES QUE COMPARAR CADA ELEMENTE CONTRA LOS QUE SIGUEN Y ESE ESTA MAS LARGO AUN QUE FACIL Y YA CON ESTO CREO QUE LO PUEDES RESOLVER O ESO ESPERO, EN FIN SUERTE......




SERGIO
24 de Abril del 2005
Hola, muchas gracias, me sirvio tu respuesta, ahora quisiera saber como eliminar los elementos repetidos, gracias de nuevo.

Noel Solw
24 de Abril del 2005
Programa que elimina elementos repetidos.
No quize aprovechar el hecho de que el array esta ordenado, como tu ejemplo lo sugiere.

// repetidos.cpp
// written in borland c++ - ver 4.5
// 24/4/2005

#include <iostream.h>
#include <iomanip.h>

const int N = 15,
EMPTY = 0;

void Show(int *a,char *msg,int dim)
{
cout << msg << a[0];
for(int i = 1;i < dim;i++)
cout << "," << a[i];
cout << endl << endl;
} // SHOW

void MarcarRepeticiones(int *a,int dim)
{
for(int i = 0;i < dim-1;i++)
for(int j = i+1;j < dim;j++)
if(a[j] == a[i])
a[j] = EMPTY;
} // MARCAR REPETICIONES

void BorrarRepeticiones(int *a,int &dim)
{
for(int i = 0;i < N;i++)
{
if(a[i] != EMPTY)
continue;
while(a[++i] == EMPTY)
dim--;
for(int k = i-1;k < N-1;k++)
a[k] = a[k+1];
}
dim--;
} // BORRAR REPETICIONES

int main()
{
int a[N] = {11,11,12,23,23,44,56,77,77,11,11,12,23,23,44},dim = N;
Show(a," source array : ",dim);
MarcarRepeticiones(a,dim);
Show(a,"auxiliar array : ",dim);
BorrarRepeticiones(a,dim);
Show(a," target array : ",dim);
cout << "end of program - good bye ! ! !" << endl;
return 0;
} // MAIN