[C con Clase] Sacar elementos repetidos de un vector.
Ali Rincon
alrincon1963 en hotmail.com
Jue Jun 5 03:46:02 CEST 2014
Hola a todos. Tengo un problema con el siguiente código el cual saca los elementos repetidos de un vector introducido por teclado. El asunto es que cuando le introduzco la secuencia de números: 0 8 9 10 11 12 13 14 36 37, me dice que se repite 1 numero y me muestra el vector final sin el numero 8. Con otra combinaciones que comiencen por 0 (sin repetir ningún numero) me dice nuevamente que se repite 1 numero y me saca el 0 del vector final. No veo donde puede estar el error que estoy cometiendo. Si alguien me pudiera ayudar, le agradecería altamente. El código es el siguiente:
#include <stdio.h>
int main(void)
{
int v_original[10];
int v_aux[10];
int v_final[10];
int cont,num,repetidos,i,j=0,k,z=0;
for (i=0; i<10; i++)
{
printf("Introduce el valor del array incial %d: ", i+1);
scanf("%d",&v_original[i]);
}
printf("\nv_original = ");
for (i=0; i<10; i++)
{
printf("%d ",v_original[i]);
}
printf("\n\n");
repetidos=0;
for (i=0; i<10; i++)
{
cont=0;
num=v_original[i];
v_aux[j]=num;
j++;
for(k=0; k<10; k++)
{
if (v_aux[k]==num )
cont++;
}
if(cont==1)
{
v_final[z]=num;
z++;
}
else
{
repetidos++;
}
}
printf("La cantidad de numeros repetidos son: %d",repetidos);
printf("\n\n");
printf("El vector simplificado es: \n");
printf("\nv_final = ");
for (i=0; i<z; i++)
{
printf ("%d ",v_final[i]);
}
printf("\n");
return 0;
}
Utilizo CodeBlocks 10.05 para compilar.
Agradecido,
Ali Rincon
Venezuela
Más información sobre la lista de distribución Cconclase