帮忙看下这队列的错误
/*队列管理的模拟算法(队列采用带首结点的链表结构)。采用如下管理模式:队列初始化为空队列。键盘输入奇数时,奇数从队尾入队列。键盘输入偶数时,对头指针指向的奇数出队列。键盘输入0时退出算法。每键入1个整数,显示操作后队列的值。*/#include <stdio.h>#include <malloc.h>#define LQueue 100#define QNode 1typedef struct node{ int data; struct node * next;}Qnode;typedef struct{ QNode *front,*rear;}LQueue;LQueue *q;LQueue *Init_LQueue(){ LQueue *q,*p; q=malloc(size(LQueue)); p=malloc(size(QNode))l; p->next=NULL; q->front=q->near=p; return q;}void In_LQueue(LQueue *q,int x){ QNode * p; p=malloc(sizef(QNode)); p->data=x;p->next=NULL; q->rear->next=p; q->rear=p;}int Empty_LQueue(LQueue *q){ if(q->front==q->rear) return 0; else return 1;}int Out_LQueue(LQueue * q,int * x){ QNode *p; if(Empty_LQueue(q)) { printf("对空");return 0; else return 1; }}int Out_LQueue(LQueue * q,int *x){ QNode *p; if(Empty_LQueue(q)) {printf("对空"); return 0; } else { p=q->front->next; q->front->next=p->next; *x=p->data; free(p); if(q->front->next==NULL) q->rear=q->front; return 1; }}void outlinkqueue(LQueue * q){ QNode * p; p=q->front; printf("Queue:"); while(p!=q->rear) { p=p->next; printf("%d",p->data);} printf("\n");}main(){ LQueue lq, *p; int j; p=&lq; Init_LQueue(p); printf("Input a integer:"); scanf("%d",&j); while(j!=0){ if(j%2==1) In_LQueue(p,j);//输入奇数,奇数入对列 else j=Out_LQueue(p);//输入偶数,对首奇数出队列 outlinkqueue(p); printf("%d",&j);}}