(贵州大学计算机科学与信息学院贡献) #include #include #include #include #include #define n 3 int vip1=0; int y,z; float sum1=0,sum2=0,sum3=0,sum4=0,sum5=0; float i1=0,i2=0,i3=0,i4=0,i5=0; float ave1=0,ave2=0,ave3=0,ave4=0,ave5=0; struct List { int A[n+1]; //顾客用来办理业务的 N 个窗口 int len; //表示数组中的元素个数 }L; struct Lnode { //链表结点类型 int data; Lnode *next; }; struct Linkqueue { //链式存储的等候队列的类型定义 Lnode *front; Lnode *rear; }Q; void Initshuzu() //初始化线性的算法 { for(int i=1;i<=n;i++) L.A[i]=0; //元素值为 0,表示编号为 I 的窗口当前状态为空 L.len=0; } void Initqueue() //初始化队列的算法 { Q.front=Q.rear=(Lnode *)malloc(sizeof(Lnode)); Q.front->next=NULL; } void Enqueue(Linkqueue *Q,int elem) //进队算法 { Lnode *s; s=(Lnode *)malloc(sizeof(Lnode)); s->data=elem; s->next=NULL; Q->rear->next=s; Q->rear=s; } int Dlqueue(Linkqueue *Q) //出队算法 { Lnode *t; int x; if(Q->front==Q->rear) { printf("队列为空!\n"); exit(1); } else { t=Q->front->next; Q->front->next=t->next; x=t->data; free(t); return x; } } void printl() //输出数组算法 { int i; printf("正在办理业务的顾客编号为: 一号柜台 二号柜台 三号柜台\n"); printf(" "); for( i=1;i<=L.len;i++) { printf("%d 号客户 ",L.A[i]); } printf("\n"); } void print2() //输出队列算法 { int i=0; printf("正在等候办理业务的顾客编号为:"); Lnode *s=Q.front->next; while(s!=NULL) { printf("%d ",s->data); s=s->next; i++; } printf("\n 您的前面一共有%d 人在排队,请您稍候!",i); printf("\n"); } void daoda(int x) //解决顾客到达事件算法 { int i=L.len+1; if (L.lenL.len) { printf("输入有误!\n 请重新输入:"); scanf("%d",&x); } else for(i=0;i<=L.len;i++) { if(i==x) ...