Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/03/2014, 22:57
RaKKoS
 
Fecha de Ingreso: junio-2009
Ubicación: House
Mensajes: 38
Antigüedad: 15 años
Puntos: 1
Respuesta: Error a mostrar pila

Hola Calgary gracias por tu observación y efectivamente ya he resuelto el problema por un descuido, estuve varias horas bueno ya he realizado la pila me ha quedado así
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4.  
  5. void crearpila (void);
  6. void agregar(void);
  7. void removerpila(void);
  8. void verpila(void);
  9. void mayor(void);
  10. void espacio(void);
  11.  
  12. int *pila,pilaon=0,ele,arrepila[20],cont=0;
  13.  
  14. main()
  15. {
  16. int re;
  17. char r;
  18. pila=arrepila;
  19. do
  20. {
  21.  
  22. printf("Programa pila\n\n\n");
  23. printf("\n1. Crear pila\n");
  24. printf("2. Agregar elementos a la pila\n");
  25. printf("3. Remover elementos de la pila\n");
  26. printf("4. Visualizar elementos de la pila\n");
  27. printf("5. Visualizar la cima de la pila\n");
  28. printf("6. Mostrar espacio de la pila\n");
  29. printf("7. Salir\n");
  30. printf("Escoja una opcion por favor...\n");
  31. scanf("%d",&re);
  32.  
  33.     switch(re)
  34.      {
  35.         case 1:
  36.             crearpila();
  37.             break;
  38.         case 2:
  39.             agregar();
  40.             break;
  41.         case 3:
  42.             removerpila();
  43.             break;
  44.         case 4:
  45.             verpila();
  46.             break;
  47.         case 5:
  48.             mayor();
  49.                break;
  50.         case 6:
  51.             espacio();
  52.                     break;
  53.      }
  54. }
  55. while (re!=7);
  56. }
  57.  
  58. void crearpila(void)
  59. {
  60. if (pilaon==NULL)
  61.     {
  62.      system("cls");
  63.       puts("Cuantos elementos desea agregar a la pila\n");
  64.      scanf("%d",&ele);
  65.      printf("Se ha creado la pila de %d elementos",ele);
  66.      pilaon=1;
  67.      getch();
  68.      system("cls");
  69.  
  70.     }
  71.     else
  72.     {
  73.         puts("Ya ha creado la pila anteriormente. Vacie la pila para poder crear una nueva.");  
  74.     }
  75.  
  76. }
  77.  
  78. void agregar(void)
  79. {
  80. if (pilaon==NULL)
  81. {
  82. puts("Debe crear una pila primero");
  83. system("cls");
  84. }
  85.  
  86. else
  87. {
  88.  
  89.    
  90.     if(cont==ele)
  91.     {
  92.     puts("La pila se encuentra llena");
  93.     getch(); system("cls");
  94.     }
  95.    
  96.     else
  97.     {
  98.     system("cls");
  99.     puts("Ingrese elemento");
  100.     scanf("%d",&*(pila));
  101.     pila++;
  102.     cont++;
  103.     printf("Elemento ingresado correctamente");
  104.     getch();
  105.     system("cls");
  106.    
  107.     }      
  108.    
  109. }
  110. }
  111.  
  112. void removerpila(void)
  113. {
  114.  
  115.     if (pilaon==NULL)
  116.     {
  117.         printf("No hay elementos en la pila");
  118.     }
  119.     else
  120.     {
  121.         printf("El elemento %d ha sido removido",*(pila-1));
  122.         pila--;
  123.         cont--;
  124.             if(cont==0)
  125.             {
  126.             pilaon=NULL;
  127.             }
  128.     }
  129.    
  130.  
  131.  
  132. }
  133.  
  134. void verpila(void)
  135. {
  136.     int a=1;
  137. for (int i=0;i<cont;i++)
  138. {
  139. printf("%d ",*(pila-a));   
  140. a++;
  141. }
  142.  
  143.  
  144. }
  145.  
  146. void mayor(void)
  147. {
  148. system("cls");
  149. printf("%d ",*(pila-1));
  150. }
  151.  
  152. void espacio(void)
  153. {
  154.     int espacio;
  155.  if (cont==ele)
  156.  {
  157.     puts("Pila esta llena");
  158.  } 
  159.  else
  160.  {
  161.     espacio=ele-cont;
  162.     printf("Quedan %d espacios en la pila",espacio);
  163.  }
  164. }
Mi pregunta es ¿esta bien hecha? como podría mejorarla mas, Gracias de antemano

Última edición por RaKKoS; 30/03/2014 a las 23:04