Eliminar elementos repetidos
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.
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.
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......
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......
Hola, muchas gracias, me sirvio tu respuesta, ahora quisiera saber como eliminar los elementos repetidos, gracias de nuevo.
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
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
