Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Xcution en 29 Noviembre 2013, 03:44 am



Título: Necesito ayuda para resolver estos errores en este programa de C
Publicado por: Xcution en 29 Noviembre 2013, 03:44 am
Muy buenas, ¿Qué tal?, necesito su ayuda para resolver los errores que ha de tener este programa, lo estaba traduciendo de C++ a C y me daba diversos errores por los cuales he de necesitar su ayuda.

He aquí el código

Código:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>



 
typedef nodo *ptrPila

struct nodo{
    int sgte;
    int nro;
    struct nodo *sgte;
 
};
 
   
       

void push(ptrPila &p, int valor )
{
     ptrPila aux;
     aux = new(struct nodo); 
     aux->nro = valor;
     
     aux->sgte = p ;
     p = aux ;
}
 

void pop( ptrPila &p )
{
     int num ;
     ptrPila aux;
     
     aux = p ;
     num = aux->nro; 
     
     p = aux->sgte ;
     delete(aux);
     
     return num;
}
 

void mostrar_pila( ptrPila p )
{
     ptrPila aux;
     aux = p;     
     
     while( aux !=NULL )
     {
           printf("aux->nro end");         
            aux = aux->sgte;
     }   
}
 

void destruir_pila( ptrPila &&p)
{
     ptrPila aux;
     
     while( p != NULL)
     {
           aux = p;
           p = aux->sgte;
           delete(aux);
     }
}
 

void menu()
{
    printf("\n          Biblioteca San Juan");
    printf("\n 1. Insertar Libros\n");
    printf(" 2. Sacar libro\n");
    printf(" 3. Ver lista de libros\n");
    printf(" 4. Llamar ultimo libro de la pila\n");
    printf(" 5. Presione 5 para salir");
    printf("Elija una opci%cn =>",162);
}
 

int main()
{
    ptrPila p = NULL;  // creando pila
    int dato;
    int op;
    int x ; // numero que devuelve la funcon pop
   
   
 
    do
    {
        menu(); 
scanf("%i",&op);
 
        switch(op)
        {
            case 1:
 
                 printf("\n Libros a apilar: ");
scanf("%i",&dato);
                 push( "%p", &dato );
                 printf("Libro apilado...\n\n");
            break;
 
 
            case 2:
 
                 x = pop( p );
                printf("\n\n\Libro " x " desapilado...\n\n");
            break;
                 
 
            case 3:
 
                 printf("\n\n Mostrandolista \n\n");
                 if(p!=NULL)
                    mostrar_pila( p );
                 else
                    printf("Lista vacia");
            break;
 
 
            case 4:
 
                 destruir_pila( p );
                 printf("\n Pila de libros eliminada...\n\n");
            break;
           
         }
 
       
        system("pause");
  system("cls");
 
    }while(op!=5);
   
   
    return 0;
}

Por favor ayúdenme, y gracias de antemano.