[C con Clase] Sacar elementos repetidos de un vector.
José de Paz
cplusplus en intelnet.net.gt
Jue Jun 5 16:06:07 CEST 2014
Hola buen día,
Analiza la siguiente porción, puede ser que alli esté el error lógico:
for(k=0; k<10; k++)
{
if (v_aux[k]==num )
cont++; /* ¿CUAL ES EL USO DE CONTADOR?
*/
}
if(cont==1) /* ESTO QUIERE DECIR QUE SI
CONTADOR TIENE ALGUN OTRO VALOR, INCLUSIVE 0 ENTONCES ¿HAY REPETIDO? */
{
v_final[z]=num;
z++;
}
else
{
repetidos++;
}
}
printf("La cantidad de numeros repetidos son: %d",repetidos);
__________________________
José de Paz
@_jdepaz
http://unixescuintla.blogspot.com
De Guatemala en Medellín
Technical Architect en Tata Consultancy Services
<-----Mensaje original----->
From: Ali Rincon [alrincon1963 en hotmail.com]
Sent: 4/6/2014 8:46:02 PM
To: cconclase en listas.conclase.net
Subject: [C con Clase] Sacar elementos repetidos de un vector.
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
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.ne
t
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140605/aef6418f/attachment.html>
Más información sobre la lista de distribución Cconclase