Ver Mensaje Individual
  #12 (permalink)  
Antiguo 12/10/2009, 17:05
angelperdido
 
Fecha de Ingreso: octubre-2009
Mensajes: 19
Antigüedad: 14 años, 7 meses
Puntos: 0
haaaay no me queda

Código:
#define MAXELE 10
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
static int TPILA[MAXELE];
static int cima = 0; /* base es 0 */

///////////////////////////////////////////////////

struct  PILA{
   int mpila[MAXELE];
   int cima;
   void reset();
   void push (int j);
   int pop();
};
///////////////////////////////////////////////
void   PILA :: reset()
   {
    cima=0;
   }
//////////////////////////////////////////////////////
      void PILA :: push (int j)
      {
         if (cima<MAXELE)
           {
             mpila[cima++]=j;
           }
      }

//////////////////////////////////////////////////////
  int PILA::pop()
 {
    if(cima>0)
    {
    printf("El valor del tope eliminado era: ");
    return(mpila[--cima]);
     }
      else{
      printf("No existen datos para eliminar\n");
       return (0);
       }
  }
///////////////////////////////////////////////////////

void  main ()
 {
 PILA stack;
 stack.reset();
 int opc,j,dato;
 char salir;
 do{
     do{

        printf("\n\n\t1.- Solicitar y almacenar un elemento en la pila\n");
        printf("\t2.- Retirar y mostrar un elemento de la pila\n");
        printf("\t3.- Mostrar todo el contenido en la pila\n");
        printf("\t4.- Vaciar la pila de una sola vez\n");
        printf("\t5.-salir\n");
        printf("\t\ttu opcion fue:");
        scanf("%d",&opc);
        }
while (opc>5);
   switch (opc)
     {
       case(1):
         if (stack.cima<MAXELE)
            {
             printf("ingresa los datos a guardar");
             scanf("%d",&dato);
             stack.push(dato);
             }
          else
             printf("la pila no esta vacia");
             printf("deseas salir (Si o No)");
             scanf("%s",&salir);
          break;

   case (2):
     stack.pop();
     dato = stack.pop();
      printf("%d",dato);
      printf("deseas salir (Si o No)");
      scanf("%s",&salir);
   break;

case (3):
   if(stack.cima!=0)
   {
       for (j=0;j<stack.cima;j++)
        {
         printf("los datos en la pila son %d    \n",stack.mpila[j]);
         }
   }
 else {
 printf("\n no hay datos guardados en la pila");
  printf("deseas salir (Si o No)");
  scanf("%s",&salir);
      }
break;

case(4):
   stack.reset();
   printf("deseas salir (Si o No)");
    scanf("%s",&salir);
break;

  case(5):
    salir='s'; break;
   default:
    salir='s'; break;
}
}
while(salir=='n' || salir=='N');
}
este es mi programa ya mas o menos corre pero no se porque en el case 3 al mostrarme lo que esta almacenado me manda tambien luego luego el menu de nuevo y de lo demas pues no se si ya esta bien alguien de ustedes podria checarlo porfavor otra csa que encontre es que en la opcion de salir S y N si le pongo un solo caracter %c me manda errores de ejecucion pero si le pongo %s ya no a que se debe ese problema lo eh tenido con todas las actividades que me an mandado porfavor ayudaaaa gracias a todos los que an puesto su granito con este programa