哪位高手帮我改正一下下面程序的错误?
#include <stdio.h>
#include <malloc.h>
# define MAXQSIZE 50; /*排队队伍中的最多的人数*/
typedef int QElemType;
typedef struct {
QElemType *base;
int front;
int rear;
}SqQueue;
void SeeDoctor()
{
int sel,flag=1,find,no,person;
person=0;
SqQueue Q;
Q.base=(QElemType *)malloc(MAXQSIZE*sizeof(QElemType));
if(!Q.base) exit(OVERFLOW);
Q.front=Q.rear=0;
while (flag==1)
{
printf("1:排队 2:就诊 3:查看排队 4.不再排队,余下依次就诊 5:下班 请选择:");
scanf("%d",&sel);
switch(sel)
{
case 1: printf(" >>输入病历号:");
do
{
scanf("%d",&no);
find=0;
while (person!=0&&!find)
{
if (Q.base[Q.front]==no)
find=1;
else
Q.front=(Q.front+1)%MAXQSIZE;
}
if (find)
printf(" >>输入的病历号重复,重新输入:");
} while (find==1);
Q.base[Q.rear]=no;
Q.rear=(Q.rear+1)%MAXQSIZE;
person++;
if(person==MAXQSIZE)printf("对不起人数已达最大!");
case 2: if (person==0) /*队空*/
printf(" >>没有排队的病人!\n");
else /*队不空*/
{
printf(" >>病人%d就诊\n",Q.base[Q.front]);
Q.front=(Q.front+1)%MAXQSIZE;
person--;
break;
case 3:if (person==0) /*队空*/
printf(" >>没有排列的病人!\n");
else /*队不空*/
{
printf(" >>排队病人:");
while (person!=0)
{
printf("%d ",Q.base[Q.front]);
Q.front=(Q.front+1)%MAXQSIZE;
}
printf("\n");
}
break;
case 4:if (person==0) /*队空*/
printf(" >>没有排列的病人!\n");
else /*队不空*/
{
printf(" >>病人按以下顺序就诊:");
while (person!=0)
{
printf("%d ",Q.base[Q.front]);
Q.front=(Q.front+1)%MAXQSIZE;
}
printf("\n");
}
flag=0; /*退出*/
break;
case 5:if (person!=0) /*队不空*/
printf(" >>请排队的病人明天就医!\n");
flag=0; /*退出*/
break;
}
}
}
void main()
{
SeeDoctor();
}