elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 23:25  


Tema destacado: Últimos eventos sobre seguridad/inseguridad

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  ayuda con agregar y eliminar pila
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con agregar y eliminar pila  (Leído 816 veces)
attackers

Desconectado Desconectado

Mensajes: 37


Ver Perfil
ayuda con agregar y eliminar pila
« en: 30 Octubre 2011, 23:43 »

amigos quien me puede ayudar a terminar este codigo o darme un manual sobre agregar pila y eliminarla y mostrarla

casi todo los que consigo son con punteros

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define p printf
#define s scanf


void agregar (void);
void retirar (void);
void mostrar (void);

/*********************************************************/

int pila[100],tope=0,max=1;


main()
        {
char sc;
            
          system("cls");    
                system("color A");

                /*** MENUU DE PILA Y COLA ***/

                p("\n\t\t\t\aPROGRMA DE PILA Y COLA\n\n\t\t\t");
                p(" \n\t\t\t**Presione 1 para agregar pilas\n\n");
                 p("\n\t\t\t**Presione 2 para eliminar pilas \n\n");
                p("\n\t\t\t**Presione 3 para mostrar las pilas");
                 p("\n ");

sc=getch();


switch(sc)

{

case 1:
     agregar ();
     break;
    
    
     case 2 :
          retirar ();
          break;
    
    
    
          case 3 :
               mostrar ();
               break;
              
}
              
              
            


/******otro menu*/
void agregar (void)
(
char seguir



do {
               if (tope==10)
               (
              
                            p("\n\noverflow....\n\n");
               system ("pause");
               )
                      else (
                      
                      p("\n\n intruduzca una numero");
                      tope=tope+1;
                      s("%d",&pila[tope];
                      
                      )                  
                      
                      
                      p("\n\n desea añador otro elemente s/n");
                      
               seguir=getch();
              
system("cls");

) while ((seguir=='s') || (seguir=='S') && (tope<max);


void retirar (void)

(
system ("cls");
if (tope==0)
{
p("underflow presione una tecla ");

}

                      else
                      
                 {
                      p("\n\n\nretirado %d de la pila\n\n", pila[tope]);
                      
                      system("pause");
                      pila[tope]=0;
                      tope=tope=-1
                      
                      }
                      )


« Última modificación: 30 Octubre 2011, 23:45 por attackers » En línea
rir3760


Desconectado Desconectado

Mensajes: 382


Ver Perfil
Re: ayuda con agregar y eliminar pila
« Respuesta #1 en: 31 Octubre 2011, 02:09 »

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:
Código
#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


En línea

The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como eliminar un elemento del listado agregar/quitar programa sin desinstalarlo?
Windows
paco_enr 3 467 Último mensaje 29 Septiembre 2004, 23:51
por Randomize
Como eliminar entradas erroneas de Agregar o quitar programas (XP)
Windows
Solenbum 2 1,114 Último mensaje 3 Enero 2008, 00:19
por Solenbum
REGISTRO agregar y eliminar con BATCH
Scripting
Martin-Ph03n1X 1 1,010 Último mensaje 10 Julio 2009, 14:39
por Novlucker
agregar,editar,eliminar,actualizar php
PHP
bobi 4 2,949 Último mensaje 24 Julio 2010, 00:16
por bobi
problema con for en c (eliminar pila)
Programación C/C++
attackers 5 542 Último mensaje 5 Noviembre 2011, 16:22
por attackers
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines