user-0 提问: 求大神帮忙改下代码 运行不出来~~~停车场管理问题~~很急~~~

回复:
user: user-0
content: 还是运行不出来~~~

user: user-1
content: #include  <stdio.h> #include  <malloc.h> #define N 3/*停车场最多的停车数*/ #define M 4/*候车场内最多的停车数*/ #define Price 2/*每单位停车费用*/ typedef struct { 	int CarNo[N];        //车牌号 	int CarTime[N];      //进场时间 	int top;            //栈指针 }SqStack;             //定义顺序栈类型 typedef struct { 	int CarNo[M];     //车牌号 	int front,rear;    //队首和队尾指针 }SqQueue;                //定义循环队类型 void InitStack(SqStack *&s) { 	s=(SqStack *)malloc(sizeof(SqStack)); 	s->top=-1; } bool StackEmpty(SqStack *s)//主要是这些bool函数出问题 { 	return(s->top==-1); } bool StackFull(SqStack *s) { 	return(s->top==N-1); } bool Push(SqStack* s) {int e1,e2; if(s->top==N-1) 	return false; s->top++; s->CarNo[s->top]=e1; s->CarTime[s->top]=e2; return true; } bool Pop(SqStack* s,int e1,int e2) { 	if(s->top==-1) 		return false; 	e1=s->CarNo[s->top]; 	e2=s->CarTime[s->top]; 	s->top--; 	return true; }  void DispStack(SqStack*s) { 	int i; 	for(i=s->top;i>=0;i--) 		printf("%d",s->CarNo[i]); 	printf("\n"); }//以下为循环队列的基本运算算法 void InitQueue(SqQueue *&q) { 	q=(SqQueue*)malloc(sizeof(SqQueue)); 	q->front=q->rear=0; } bool QueueEmpty(SqQueue *q) { 	return(q->front==q->rear); } bool QueueFull(SqQueue *q)  //判断队满 { 	return((q->rear+1)%M==q->front); } bool enQueue(SqQueue* q)//进队 {  	int e; 	if((q->rear+1)%M==q->front); 		return false; 	q->rear=(q->rear+1)%M; 	q->CarNo[q->rear]=e; 	return true; } bool deQueue(SqQueue*&q,int &e)    //出队 { 	if(q->front==q->rear)            //队出的情况 		return false; 	q->front=(q->front+1)%M; 	e=q->CarNo[q->front]; 	return true; } void DispQueue(SqQueue*q)         //输出队中元素 { 	int i; 	i=(q->front+1)%M; 	printf("%d",q->CarNo[i]); 	while((q->rear-i+M)%M>0) 	{ 		i=(i+1)%M; 		printf("%d",q->CarNo[i]); 	} 	printf("\n"); } void main() { 	int comm; 	int no,e1,time,e2; 	int i,j; 	//int St,St1; 	SqStack *St,*St1; 	SqQueue *Qu; 	InitStack(St); 	InitStack(St1); 	InitQueue(Qu); 	do 	{ 		printf("输入指令（1：到达2：离开3：停车场4：候车场0：退出"); 		scanf("%d",&comm); 		switch(comm) 		{ 		case 1:               //汽车到达 			printf("车号以及到达时间："); 			scanf("%d,%d",&no,&time); 			if(!StackFull(St))             //停车场不满 			{ 				SqStack st; 				st.CarNo[0] = no; 				st.CarTime[0] = time; 				Push(&st);  // 				Push(St); // 				Push(no); // 				Push(time); 				printf("***停车场位置：%d\n",St->top+1); 			} 			else              //停车场满 			{ 				if(!QueueFull(Qu))        //候车场不满 				{ 					enQueue(Qu); //					enQueue(no); 					printf("***候车场位置：%d\n",Qu->rear); 				} 				else 					printf("***候车场已满，请下次再来哦(*^__^*) 嘻嘻……\n"); 			} 			break; 		case 2:                //汽车离开 			printf("车号以及离开时间："); 			scanf("%d,%d",&no,&time); 			for(i=0;i<=St->top&&St->CarNo[i]!=no;i++) 				if(i>St->top) 					printf("没有找到此编号的汽车哦！\n"); 				else 				{ 					for(j=i;j<=St->top;j++) 					{ 						Pop(St,e1,e2); // 						Pop(e1); // 						Pop(e2); 						Push(St1); // 						Push(e1); // 						Push(e2); 					}               //倒车到临时栈St1中  					Pop(St,e1,e2); // 					Pop(e1); // 					Pop(e2);                     //该汽车离开 					printf("您一共要交：%d\n",no,(time-e2)*Price); 					while(!StackEmpty(St1))           //将临时栈St1重新回到St中 					{ 						Pop(St1,e1,e2); // 						Pop(e1); // 						Pop(e2); 						Push(St); // 						Push(e1); // 						Push(time); 					} 					if(!QueueEmpty(Qu)) 					{ 						deQueue(Qu,e1);  						St->CarNo[0] = e1; 						St->CarTime[0] = time; 						Push(St); 						 // 						Push(e1); // 						Push(time); 					} 				}    				break;  		case 3: 			if(!StackEmpty(St)) 			{ 				printf("停车场里有："); 				DispStack(St); 			} 			else 				printf("**停车场没有位子了哦！\n"); 			break; 		case 4: 			if(!QueueEmpty(Qu)) 			{ 				printf("候车场中的车辆："); 				DispQueue(Qu); 			} 			else 				printf("**候车场中无车辆\n"); 			break; 		case 0: 			if(!StackEmpty(St)) 			{ 				printf("停车场中的车辆："); 				DispStack(St); 			} 			if(!QueueEmpty(Qu)) 			{ 				printf("候车场中的车辆："); 				DispQueue(Qu); 			} 			break; 		default: 			printf("输入错误哦！\n"); 			break; 		}   	}while(comm!=0); }

user: user-1
content: 该的都恶心了，什么玩意

user: user-2
content: 至少你应该把出现的错误以及你做了哪些尝试告诉我们。要理解栈和队列并不是什么好难的事

user: user-3
content: 楼主，这个代码是你随便找的，怕是没细看吧  第39行括号里怎么有分号 第30行代码压栈时里边的参数是SqStack *&s，怎么在main中传入的参数成int了  问题不少，还是从新找一个问题较少的慢慢改吧