Ejemplo: Si el arreglo original es 8 4 8 5 4, entonces el arreglo se transformará a: 8 4 -1 5 -1 y se devolverá como cantidad de
repeticiones 2.
//Declaración de variables
int liN, liContador, laiArreglo[10];
//Entrada de datos
do
{
printf("Cantidad de componentes del arreglo: ");
scanf("%d", &liN);
if (liN <= 0)
printf("\n\tError!, debe ingresar un valor mayor que 0.\n\n");
} while (liN <= 0);
for (liContador = 0; liContador < liN; liContador++)
{
do
{
printf("Valor #%d: ", liContador + 1);
scanf("%d", &laiArreglo[liContador]);
if (laiArreglo[liContador] < 0)
printf("\n\tError!, debe ingresar un valor mayor que 0.\n\n");
} while (laiArreglo[liContador] < 0);
}
//Procesamiento
int liContador1, liContador2;
for (liContador1 = 0; liContador1 < liN - 1; liContador1++)
{
for (liContador2 = liContador1 + 1; liContador2 < liN; liContador2++)
{
if (laiArreglo[liContador2] == laiArreglo[liContador1])
laiArreglo[liContador2] = -1;
}
}
//Salida de datos
printf("\nResultado: ");
for (liContador = 0; liContador < liN; liContador++)
{
printf("%d", laiArreglo[liContador]);
if (liContador < liN - 1)
printf(", ");
}
(http://oi61.tinypic.com/2yv0z7t.jpg)
Como pueden ver, no logro hacerlo, estoy vuelto loco y ya no se que hacer :(
Mod: Código resaltado con etiquetas GeSHi para que sea más visible
no entiendo que es lo que no funciona? lo veo bien hecho y sin errores (más allá de hacer un arreglo fijo y "limitarlo" por variable)
Hola.
Asumiendo que ingresamos estos datos: 8 4 8 5 4, el resultado debe ser 8 4 -1 5 -1.
O sea, si se encuentra un valor repetido, se le reemplaza por -1.
8 4 8 5 4
8 4 -1 5 -1
y mi código no lo hace, algo estoy haciendo mal.
No sé que modificaciones hacerle, estoy en blanco, podrias ayudarme?.
a mi me funciona así sin ningún cambio :s
creo que deberías hacer tu la prueba de nuevo
(http://i.imgur.com/F1sCCN8.png?1)
en tu imagen pusiste 8, 4, 5, 8, 4 y el resultado fue 8, 4, 5, -1, -1 que está bien