我重新发了
#include
#include
#include
#include
#define N 30 ///队列最大人数
#define w 3 ///银行窗口个数
typedef struct Node{
int data;
struct Node *next;
}node;
typedef struct {
node * front;
node * rear;
}queue;
void initqueue(queue *q)
{
q->front=q->rear=(node*)malloc(sizeof(node));
if(!q->front) exit(0);
q->front->next=NULL;
}
void destroyqueue(queue *q)
{
while(q->front){
q->rear=q->front->next;
free(q->front);
q->front=q->rear;
}
printf("队列销毁成功n");
}
void enterqueue(queue *q,int a)
{
node *p;
p=(node*)malloc(sizeof(node));
if(!p) exit(0);
p->data=a;
p->next=NULL;
q->rear->next=p;
q->rear=p;
printf("t您的号码为%dt",a);
}
void deletequeue(queue *q,int a)
{
node *p;
p=(node*)malloc(sizeof(node));
if(q->front=q->rear) { printf("队列为空n");exit(0);}
p=q->front->next;
a=p->data;
q->front->next=p->next;
if(q->rear==p) q->rear=q->front;
free(p);
printf("%d已离开n",a);
}
void main()
{
queue *list;
int number=1,m;
char ch1,ch2;
list=(queue*)malloc(sizeof(queue));
initqueue(list);
while(1){
printf("请输入“#”字符获取排队号,其他字符无效:t");
scanf("%c",&ch1);
getchar();
if(ch1!='#') {printf("字符输入错误n"); exit(0);}
if(ch1=='#'){
enterqueue(list ,number);
number++;
printf("t请输入“&”获取窗口号: ");
scanf("%c",&ch2);
getchar();
if(ch2!='&') {printf("字符输入错误n"); exit(0);}
if(ch2=='&'){
srand(time(NULL));
m=rand()%3+1;
printf("请到第%d个窗口办理业务:n ",m);
}
}
//if ( count>N ) printf("n已超过%d人等候,稍后再取号:n",N);
}
}