Deficiencias en el programa hay muchas empezando por la definición de la función principal y el uso de conio. También el uso de las macros es ... inusual. Ellas las debes utilizar para darle claridad al programa, no para moldearlo al gusto. Por favor lee los temas fijos del foro.
Errores importantes hay varios, primero declaras un array con 100 elementos y a continuación limitas el uso de estos a solo 10. En su lugar utiliza las macros como dios manda, define una y utilizala en todo el programa para indicar el numero de elementos en la pila:
En cuanto a las dos operaciones básicas en una pila estas son push y pop con un indicador de posición con un valor inicial a cero. Ese es el problema en tu programa.
La operación push debería ser:
1) Agregar el elemento
2) Incrementar el contador
La operación pop debería ser:
1) Decrementas el contador
2) Sacas el elemento
Al hacerlo así el contador de posición indicara en todo momento el numero de elementos en la pila.
Un saludo
Errores importantes hay varios, primero declaras un array con 100 elementos y a continuación limitas el uso de estos a solo 10. En su lugar utiliza las macros como dios manda, define una y utilizala en todo el programa para indicar el numero de elementos en la pila:
Código (c) [Seleccionar]
#define NUM_ELEM 100
/* ... */
int pila[NUM_ELEM];
/* etc */
En cuanto a las dos operaciones básicas en una pila estas son push y pop con un indicador de posición con un valor inicial a cero. Ese es el problema en tu programa.
La operación push debería ser:
1) Agregar el elemento
2) Incrementar el contador
La operación pop debería ser:
1) Decrementas el contador
2) Sacas el elemento
Al hacerlo así el contador de posición indicara en todo momento el numero de elementos en la pila.
Un saludo