Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: RGT en 31 Marzo 2015, 00:37 AM

Título: Valores repetidos en un arreglo en C
Publicado por: RGT en 31 Marzo 2015, 00:37 AM
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.

Código (cpp) [Seleccionar]
//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
Título: Re: Valores repetidos en un arreglo en C
Publicado por: engel lex en 31 Marzo 2015, 00:47 AM
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)

Título: Re: Valores repetidos en un arreglo en C
Publicado por: RGT en 31 Marzo 2015, 03:55 AM
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?.
Título: Re: Valores repetidos en un arreglo en C
Publicado por: engel lex en 31 Marzo 2015, 04:10 AM
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