10/05/2012, 09:53
|
| | Fecha de Ingreso: mayo-2012
Mensajes: 1
Antigüedad: 12 años, 6 meses Puntos: 0 | |
buenas, necesito que me ayuuuuuudeen!!! buenas buenas!!! tngo un problemiiita cn un programa de pilas... al momento de desapilar me dice qe esta vacio, asi haya apilado antes!! YA NO DOYYYY CN LO QE ME FALTA, O CN LO QE TNGO MALOOO!!! Please, les agradeceria una ayudiiita!!! :( aki esta el pseudooo..
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <conio.h>
struct pila {
int sexo;
char cedula[8];
char nombre [20];
struct pila *sig;
} *cabezam=NULL, *cabezaf=NULL, *aux=NULL;
void apilar (void)
{
int otra;
apilando:
aux=(struct pila*)malloc(sizeof(struct pila));
printf ("\n introduzca los valores a apilar:\n\t");
printf ("\n introduzca su numero de cedula: \n");
gets(aux->cedula);
printf (" introduzca su nombre: \n");
gets(aux->nombre);
printf ("\n introduzca el sexo: (1) masculino o (2) femenino:\n\t");
gets(aux->sexo);
if (aux->sexo=="1"){
if(cabezam==NULL){
cabezam=aux;
aux->sig=NULL;
}else{
cabezam->sig = aux;
cabezam = aux;
}
}
if (aux->sexo=="2"){
if(cabezaf==NULL){
cabezaf=aux;
aux->sig=NULL;
}else{
cabezaf->sig=aux;
cabezaf=aux;
}}
printf("desea introducir datos de otra persona\n\n 1-SI\n\n 2-NO\n\n\t\t");
scanf("%d",&otra);
getchar();
switch(otra){
case 1:
system("cls");
goto apilando;
case 2:
break;
default:
printf("la opcion no es correcta");
getch();
}
}
void desapilar (void)
{
int sexo;
printf ("\n introduzca 1 si desea desapilar de la pila masculina o introduzca 2 si desea desapilar de la pila femenina :\n\t");
scanf ("%d",&sexo);
if (sexo==1){
if(cabezam==NULL){
printf("\n\n\t\tLA PILA ESTA VACIA\n\n\n");
getch();
}
while(aux->sig!=cabezam){
aux=aux->sig;
}
printf("\n\n\t\t\tdesapilados los datos de la pila masculina %c",cabezam->nombre);
free(cabezam);
cabezam=aux;
getch();
}
aux = cabezam;
if (sexo==2){
if(cabezaf==NULL){
printf("\n\n\t\tLA PILA ESTA VACIA\n\n\n");
getch ();}
}
}
void mostrar (void){
int sexo;
printf("\n introduzca la pila que desea mostrar (1)Masculina o (2)Femenina:\n\t");
gets(sexo);
if (sexo==1){
if (cabezam==NULL){
printf("\n\t la pila esta vacia\n\n puede apilar nuevos datos\n\n");
return;}
printf("\n\n\t mostrar los datos apilados\n\n");
aux=cabezam;
while(aux!=NULL){
printf("\t%c cedula",aux->cedula);
printf("\t%c nombre",aux->nombre);
aux=aux->sig;
printf("\n\n");
}
if (sexo==2){
if(cabezaf==NULL){
printf("\n\n\tla pila esta vacia\n\n puede apilar nuevos datos\n\n");
return;}
aux=cabezaf;
printf("\n\n\t mostrar los datos apilados\n\n");
while(aux!=NULL){
printf("\t%l cedula",aux->cedula);
printf("\t%c nombre",aux->nombre);
aux=aux->sig;
printf("\n\n");
}
}
}
}
void menup(){
int opc;
printf("\n\n\t elegir una opcion\n\n");
printf("\t\t\t1-APILAR\n\n \t\t\t2-DESAPILAR\n\n \t\t\t3-MOSTRAR\n\n \t\t\t4-SALIR\n\n\t\t\t\t\t");
scanf("%d",&opc);
getchar();
system("cls");
switch(opc){
case 1:
apilar();
system("cls");
menup();
break;
case 2:
desapilar();
system("cls");
menup();
break;
case 3:
mostrar();
system("pause");
system("cls");
menup();
break;
case 4:
break;
default:
printf("\n\n\t\topcion incorrecta intente de nuevo\n\n\n\a\a");
system("pause");
system("cls");
break;
}
}
void ir_a_la_pila(){
menup();
system("PAUSE");
}
void menu_principal(){
char resp;
printf("Republica Bolivariana de Venezuela \n");
printf("Ministerio del Poder Popular para la Defensa \n");
printf("Universidad Nacional Experimental Politecnica de la Fuerza Armada \n");
printf("UNEFA - Nueva Esparta \n\n\n\n\n\n\n\n");
printf(" Proyecto 2 \n\n\n\n\n\n\n\n");
printf("Autor: Gabriela Foglia \n");
printf("C.I.: 20.023.237 \n\n\n");
system("pause");
int pc;
system("cls");
printf("\n\t\t menu principal\n\n");
printf("\t elegir una opcion:\n\n \t1-MENU\n\n \t2-SALIR DEL PROGRAMA\n\n\n\t\t\t\t");
scanf("%d",&pc);
getchar();
switch(pc){
case 1:
system("cls");
ir_a_la_pila();
menu_principal();
break;
case 2:
break;
default:
printf("\n\n\t\testa opcion no es correcta intente de nuevo\n\n\n\a\a");
system("pause");
system("cls");
menu_principal();
}
}
void main (void){
menu_principal();
system("pause");
return 0;
} |