Título: [C][?]Ayuda a resolver estos errores
Publicado por: Xcution en 1 Noviembre 2013, 13:44 pm
He aquí un programa que hará su función de Gestión bibliotecaria con base en una pila, por favor me gustaría si me pueden ayudar a resolver el problema aquí está el programa.. #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; }
Título: Re: [C][?]Ayuda a resolver estos errores
Publicado por: vangodp en 1 Noviembre 2013, 20:50 pm
hay como tropecientos errores creo. te dire unos que eh visto no se si voy bien. Pero bueno a ver si tallamos la piedra XD en la linea de typedef quieres crear un puntero ¿No? seria así o no se si tiene que ser distinto en c++ que es por donde me muevo mejor. Creo que es así: typedef struct nodo *ptrPila; Luego dentro de la estructura intentas declarar otra estructura con el mismo nombre o sea 2. ¿creo que quisiste hacer algo como esto? struct nodo{ int sgte; int nro; }; nodo *sgte;
cuando llamas a la funcion push esperas una estructura por referencia sin embargo desde main le envias un int, eso no se si se puede hacer pero a ver si alguien mas ayuda :) Y podías comentar algo mas tu código que esperas hacer con cada función así seria mas fácil ayudarte. bueno seguire intentando un rato a ver si le pulimos algo ;)
|