Necesito ayuda para resolver estos errores en este programa de C

Iniciado por Xcution, 29 Noviembre 2013, 03:44 AM

0 Miembros y 1 Visitante están viendo este tema.

Xcution

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

#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.