Cuando compilo mi codigo funciona y todo pero ala hora de consulta general y consultar por nombre me muestra los resultados pero me dice que devx deja de funcionar
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct hotel
{
int numhab;
char nom[15];
char tipohab[2];
int numeronoch;
int totalpagar;
struct hotel *sig;
};
hotel *cab=NULL, *fin=NULL;
void encolar(void);
void desencolar(void);
void consultar(void);
void consultarN(void);
int habsen=0;
int habdob=0;
int habjr=0;
int totalhab=0;
void encolar(void)
{
if(totalhab==3)
{
printf("No hay recamaras que alquilar.\n");
}
else
{
char tiph[10];
hotel *q=new(hotel);
printf("Nombre:");
fflush(stdin);
gets(q->nom);
printf("Tipo Habitacion:");
scanf("%s", &tiph);
if(strcmp(tiph, "sencilla")==0)
{
habsen++;
q->numhab=habsen;
strcpy(q->tipohab, "S");
printf("Numero noches:");
scanf("%d", &q->numeronoch);
q->totalpagar=q->numeronoch*1500;
printf("\n");
}
if(strcmp(tiph, "doble")==0)
{
habdob++;
q->numhab=habdob;
strcpy(q->tipohab, "D");
printf("Numero noches:");
scanf("%d", &q->numeronoch);
q->totalpagar=q->numeronoch*2700;
printf("\n");
}
if(strcmp(tiph, "jr")==0)
{
habjr++;
q->numhab=habjr;
strcpy(q->tipohab, "JR");
printf("Numero noches:");
scanf("%d", &q->numeronoch);
q->totalpagar=q->numeronoch*3500;
printf("\n");
}
if(cab==NULL)
{
cab=q;
fin=q;
}
else
{
fin->sig=q;
fin=q;
}
totalhab++;
}
}
void desencolar(void)
{
if(cab==NULL)
printf("No hay clientes:\n\n");
else
{
hotel *aux;
aux=cab;
cab=cab->sig;
printf("Atendiendo a:\nNombre:%s\nHabitacion:%s%d\nNoches:%d\nImporte:%d\n\n", aux->nom, aux->tipohab, aux->numhab, aux->numeronoch, aux->totalpagar);
free(aux);
}
}
void consultar(void)
{
if(cab==NULL)
printf("No hay clientes\n\n");
else
{
hotel *aux;
aux=cab;
printf("Reservaciones:\n\n");
while(aux!=NULL)
{
printf("Nombre:%s\nHabitacion:%s%d\nNoches:%d\nImporte:%d\n\n", aux->nom, aux->tipohab, aux->numhab, aux->numeronoch, aux->totalpagar);
aux=aux->sig;
}
}
}
void consultarN(void)
{
if(cab==NULL)
printf("No hay clientes\n\n");
else
{
char name[15];
int b=0;
hotel *aux;
aux=cab;
printf("Nombre Reservacion:");
fflush(stdin);
gets(name);
while(aux!=NULL)
{
if(strcmp(name, aux->nom)==0)
printf("\nNombre:%s\nHabitacion:%s%d\nNoches:%d\nImporte:%d\n\n", aux->nom, aux->tipohab, aux->numhab, aux->numeronoch, aux->totalpagar);
aux=aux->sig;
}
}
}
main()
{
int opc;
printf("Precio de habitaciones:\nSencilla=1500\nDoble=2700\nJr=3500\n\n");
do
{
printf("Menu:\n");
printf("1.-Reservar habitacion\n");
printf("2.-Atender cliente\n");
printf("3.-Consultar Reservaciones\n");
printf("4.-Consultar Nombre\n");
printf("5.-Salir\n");
scanf("%d", &opc);
switch(opc)
{
case 1: encolar();
break;
case 2: desencolar();
break;
case 3: consultar();
break;
case 4: consultarN();
break;
case 5: printf("Adios");
break;
default: printf("Opcion no valida");
}
}while(opc!=5);
}