数据结构 c语言,客房管理系统中 查找某一房间类型的所有信息 系统运行后,为什么有时候可以显示结果,有时候不行,为什么呢
p=p->next; 这句放错了地方,修改如下,供参考:
void czmy(LinkList L)//查找某一房间类型的所有房间信息
{
int a;
LinkList p=L->next;
int i=0;
printf("\t\t======================================================\n");
printf("\t\t|| ※欢迎进入计算各类客房收入系统※ ||\n");
printf("\t\t|| 1.计算单人房间类型的所有房间信息 ||\n");
printf("\t\t|| 2.计算双人房间类型的所有房间信息 ||\n");
printf("\t\t|| 3.计算三人房间类型的所有房间信息 ||\n");
printf("\t\t|| 4.计算四人房间类型的所有房间信息 ||\n");
printf("\t\t======================================================\n");
printf("\t\t>>>请选择1--4:");
scanf("%d", &a);
switch (a){
case 1://1.计算单人房间类型的所有房间信息
{
while(p) {
if (strcmp("单",p->data.type)==0) {
printf("单人房间类型的所有房间信息:");
printf("\t\t房间号码 房间类型 是否入住 房间价格\n");
printf("%22s%17s%13d%17d\n",p->data.num,p->data.type,p->data.flag,p->data.money);//printf("\n");
}
p=p->next;
}
}
break;
case 2://2.计算双人房间类型的所有房间信息
{
while(p) {
if (strcmp("双",p->data.type)==0) {
printf("双人房间类型的所有房间信息:");
printf("\t\t房间号码 房间类型 是否入住 房间价格\n");
printf("%22s%17s%13d%17d\n",p->data.num,p->data.type,p->data.flag,p->data.money);//printf("\n");
}
p=p->next;
}
}
break;
case 3://3.计算三人房间类型的所有房间信息
{
while(p) {
if (strcmp("三",p->data.type)==0) {
printf("三人房间类型的所有房间信息:");
printf("\t\t房间号码 房间类型 是否入住 房间价格\n");
printf("%22s%17s%13d%17d\n",p->data.num,p->data.type,p->data.flag,p->data.money);// printf("\n");
}
p=p->next;
}
}
break;
case 4://3.计算四人房间类型的所有房间信息
{
while(p) {
if (strcmp("四",p->data.type)==0) {
printf("四人房间类型的所有房间信息:");
printf("\t\t房间号码 房间类型 是否入住 房间价格\n");
printf("%22s%17s%13d%17d\n",p->data.num,p->data.type,p->data.flag,p->data.money);// printf("\n");
}
p=p->next;
}
}
break;
}
}
没有代码,没法分析,猜测是查找的函数里有漏洞造成。
你可以参考我的这个《C程序设计学生管理系统》,哪里看不懂,私信我https://blog.csdn.net/m0_46323635/article/details/118027918?utm_source=app&app_version=4.9.1&code=app_1562916241&uLinkId=usr1mkqgl919blen