elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  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 3,744 veces)
attackers

Desconectado Desconectado

Mensajes: 38


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

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 pm por attackers » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


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

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
  1. #define NUM_ELEM  100
  2.  
  3. /* ... */
  4.  
  5. int pila[NUM_ELEM];
  6.  
  7. /* 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

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
REGISTRO agregar y eliminar con BATCH
Scripting
Martin-Ph03n1X 1 3,260 Último mensaje 10 Julio 2009, 14:39 pm
por Novlucker
agregar,editar,eliminar,actualizar php
PHP
bobi 4 5,570 Último mensaje 24 Julio 2010, 00:16 am
por bobi
problema con for en c (eliminar pila)
Programación C/C++
attackers 5 8,964 Último mensaje 5 Noviembre 2011, 16:22 pm
por attackers
eliminar/agregar scroll horizontal
Desarrollo Web
basickdagger 4 3,224 Último mensaje 7 Marzo 2013, 07:07 am
por basickdagger
buscar y eliminar datos en una pila c#
.NET (C#, VB.NET, ASP)
enkris 4 6,580 Último mensaje 22 Noviembre 2014, 01:59 am
por Yaldabaot
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines