Foro de elhacker.net

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
  1. //Declaración de variables
  2.    int liN, liContador, laiArreglo[10];
  3.  
  4.    //Entrada de datos
  5.    do
  6.    {
  7.        printf("Cantidad de componentes del arreglo: ");
  8.        scanf("%d", &liN);
  9.  
  10.        if (liN <= 0)
  11.            printf("\n\tError!, debe ingresar un valor mayor que 0.\n\n");
  12.    } while (liN <= 0);
  13.  
  14.    for (liContador = 0; liContador < liN; liContador++)
  15.    {
  16.        do
  17.        {
  18.            printf("Valor #%d: ", liContador + 1);
  19.            scanf("%d", &laiArreglo[liContador]);
  20.  
  21.            if (laiArreglo[liContador] < 0)
  22.                printf("\n\tError!, debe ingresar un valor mayor que 0.\n\n");
  23.        } while (laiArreglo[liContador] < 0);
  24.    }
  25.  
  26.    //Procesamiento
  27.    int liContador1, liContador2;
  28.  
  29.    for (liContador1 = 0; liContador1 < liN - 1; liContador1++)
  30.    {
  31.        for (liContador2 = liContador1 + 1; liContador2 < liN; liContador2++)
  32.        {
  33.            if (laiArreglo[liContador2] == laiArreglo[liContador1])
  34.                laiArreglo[liContador2] = -1;
  35.        }
  36.    }
  37.  
  38. //Salida de datos
  39.    printf("\nResultado: ");
  40.  
  41.    for (liContador = 0; liContador < liN; liContador++)
  42.    {
  43.        printf("%d", laiArreglo[liContador]);
  44.  
  45.        if (liContador < liN - 1)
  46.            printf(", ");
  47.    }
  48.  

(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