Generar una lista oculta en C

Iniciado por Tezcat, 21 Diciembre 2013, 01:00 AM

0 Miembros y 1 Visitante están viendo este tema.

Tezcat

Hola a todos,

Tengo un problema a la hora de realizar una lista oculta en C. Me refiero a crear una lista de elementos ocultos tal que cada guión represente un número:

- - - - - - -

Y que al seleccionar una posición por ejemplo la 3:

- - 2 - - - -

Y si el número es mayor que 5 el número se quede sustituyendo al guión, si no el guión vuelve a reemplazar el número. Esto ha de hacerse con un vector el vector ya lo tengo implementado, pero no se como realizar lo de los guiones. Si pudieran ayudarme o darme alguna idea de como hacer esto os lo agradecería.

Saludos

rir3760

Cita de: Tezcat en 21 Diciembre 2013, 01:00 AMEsto ha de hacerse con un vector el vector ya lo tengo implementado, pero no se como realizar lo de los guiones. Si pudieran ayudarme o darme alguna idea
C no tiene vectores supongo te refieres a un array, ¿Correcto?

Debes utilizar un array para almacenar cada uno de los números (mas bien dígitos) y para visualizarlos debes utilizar otro array para almacenar el estado de cada dígito (visible u oculto). Este puede ser un array de caracteres donde el valor uno indica que debe imprimirse el dígito y el valor cero que debe imprimirse un guion.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

Tezcat

Ya encontré la forma, declaré un array de caracteres como bien dices y lo llene de guiones, después use este código, donde lista1 es un array donde metí los dígitos, tam el tamaño del vector y pos la posición que quiero imprimir:
for (i=0;i<tam;i++) {
      if (i==pos)  {
  oculto[i]=lista1[pos];
   printf("%d\t", oculto[i]);
  }
     else printf("%c\t", oculto[i]);
}


Muchas gracias por tu ayuda.
Saludos