#include“stdio.h”
#include ”malloc.h“
typedef struct queue
{
int data;
struct queue *next;
}QUEUE;
QUEUE *front=NULL;
QUEUE *rear=NULL;
void AddQueue(int x)
{ QUEUE *s;
s=(QUEUE *)malloc(sizeof(QUEUE));
s->data=x;
s->next=NULL;
if(rear==NULL)
front=s;
else
rear->next=s;
rear=s;
}
void DelQueue(int *e)
{
if(front==NULL)
printf("Queue is empty\n");
else
{
QUEUE *temp;
temp=front->next;
*e=front->data;
free(front);
front=temp;
}
return;
}
void DisplayQueue(int *e)
{
if(rear==NULL)
{
printf("Queue is empty\n");
return;
}
else
QUEUE *temp =front;
printf("目前所有的病历号: ");
while(temp!=NULL)
{
printf("%d",temp->data);
temp=temp->next;
}
printf("\n");
}
void SeeDoctor()
{
int selection,number;
int exinum;
int stop=0;
int e;
int flag=1;
QUEUE *temp;
while(flag==1)
{
printf("1:排队 2:就诊 3:查看排队 4:停止排队\n");
printf("请选择:");
scanf("%d",&selection);
switch(selection)
{
case 1:
{
while(stop==0)
{
printf("输入病历号:");
do
{
scanf("%d",&number);
if(number==0)
break;
exinum=0;
temp=front;
while(temp!=NULL&&exinum==0)
{
if(temp->data==number)
exinum=1;
else
temp=temp->next;
if(exinum==1)
printf("输入病历号重复,重新输入\n");
}
}while(exinum==1);
if(number==0)
break;
else
AddQueue(number);
}
}
break;
case 2:
{
if(rear==NULL)
printf("目前无人排队\n");
else
{
temp=front;
DelQueue(&e);
printf("第%d号病人就诊\n",e);
}
}
break;
case 3: DisplayQueue();break;
case 4:
{
if(front!=NULL)
printf("请排队的病人明天就诊!\n");
flag=0;
}break;
}
}
void main()
{
SeeDoctor();
}
三处错误,看注释
#include<stdio.h>
#include <malloc.h>
typedef struct queue
{
int data;
struct queue *next;
}QUEUE;
QUEUE *front = NULL;
QUEUE *rear = NULL;
void AddQueue(int x)
{
QUEUE *s;
s = (QUEUE *)malloc(sizeof(QUEUE));
s->data = x;
s->next = NULL;
if (rear == NULL)
front = s;
else
rear->next = s;
rear = s;
}
void DelQueue(int *e)
{
if (front == NULL)
printf("Queue is empty\n");
else
{
QUEUE *temp;
temp = front->next;
*e = front->data;
free(front);
front = temp;
}
return;
}
void DisplayQueue(int *e)
{
if (rear == NULL)
{
printf("Queue is empty\n");
return;
}
else { //这里漏了花括号
QUEUE *temp = front;
printf("目前所有的病历号: ");
while (temp != NULL)
{
printf("%d", temp->data);
temp = temp->next;
}
printf("\n");
}
}
void SeeDoctor()
{
int selection, number;
int exinum;
int stop = 0;
int e;
int flag = 1;
QUEUE *temp;
while (flag == 1)
{
printf("1:排队 2:就诊 3:查看排队 4:停止排队\n");
printf("请选择:");
scanf("%d", &selection);
switch (selection)
{
case 1:
{
while (stop == 0)
{
printf("输入病历号:");
do
{
scanf("%d", &number);
if (number == 0)
break;
exinum = 0;
temp = front;
while (temp != NULL && exinum == 0)
{
if (temp->data == number)
exinum = 1;
else
temp = temp->next;
if (exinum == 1)
printf("输入病历号重复,重新输入\n");
}
} while (exinum == 1);
if (number == 0)
break;
else
AddQueue(number);
}
}
break;
case 2:
{
if (rear == NULL)
printf("目前无人排队\n");
else
{
temp = front;
DelQueue(&e);
printf("第%d号病人就诊\n", e);
}
}
break;
case 3: DisplayQueue(&e); break; //DisplayQueue函数需要一个参数
case 4:
{
if (front != NULL)
printf("请排队的病人明天就诊!\n");
flag = 0;
}break;
}
}
} //末尾漏了花括号
void main()
{
SeeDoctor();
}