数据结构(c语言)的队列有关问题,请高手帮忙!不知如何搞得那么多的异常!

数据结构(c语言)的队列问题,请高手帮忙!!!不知怎么搞得那么多的错误!!!
#include<stdio.h>
#include<stdlib.h>
#define Elemtype int 
#define Q (*qe)

struct quenode
{
 Elemtype data;
 struct quenode *next;
}*p,*s,*h;
struct quefre
{
struct quenode *front, *rear;
};
void main(){
struct quefr *que;
int x,core;

void insert(quefr *que, x);
void creat(quefr *qe);
void outlin( quefr *qq);
do{
printf("a= ")
 printf(" 主菜单 ");
 printf(" 创建新队列");
 scanf("%d",&core);
 switch(core){
case 1:{
q=(struct quefr )malloc(sizeof(struct quefr ) );
creat(que);
  outlin(que);
}break;
}
}while(core<=4);
}
void outlin(struct quefr *qq){
 p=qq.front->next;
 while(p!=NULL){
printf("p=%d",p->data);
p=p->next;
 }
 printf("\n outend \n");
}
void insert(struct quefr *que,int x){
s=(struct *quenode)malloc(sizeof(struct quenode));
s->data=x;
s->next=NULL;
Q.rear->next=s;
Q.rear=s;
}
void creat(struct quefr *qe){
int i,n,x;

printf("n=%d");
scanf("%d",&n);
h=(struct *quenode)malloc(sizeof (struct quenode));
h->next=NULL;
Q.front=h;
Q.rear=h;
for(i=1;i<=n;i++){
 scanf("%d",&x);
 insert(qe,x);
}
}

------解决方案--------------------
改好了,有其他问题加我Q:506341588
C/C++ code

#include<stdio.h>
#include<stdlib.h>
#define Elemtype int  
#define Q (*que)

struct quenode
{
    Elemtype data;
    struct quenode *next;
}*p,*s,*h;

struct quefre
{
    struct quenode *front, *rear;
};

void main()
{
    struct quefre *que;
    int core;
    
    void insert(quefre *que, int x);
    void creat(quefre *que);
    void outlin(quefre *qq);

    do{
        printf(" 主菜单 ");
        printf(" 创建新队列");
        scanf("%d",&core);
        switch(core)
        {
        case 1:
            {
                que=(struct quefre*)malloc(sizeof(struct quefre) );
                creat(que);
                outlin(que);
            }
            break;
        }
    }while(core<=4);
}
void outlin(struct quefre *qq){
    p=(*qq).front->next;
    while(p!=NULL){
        printf("p=%d",p->data);
        p=p->next;
    }
    printf("\n outend \n");
}
void insert(struct quefre *que,int x)
{
    s=(struct quenode*)malloc(sizeof(struct quenode));
    s->data=x;
    s->next=NULL;
    Q.rear->next=s;
    Q.rear=s;
}
void creat(struct quefre *que){
    int i,n,x;
    
    printf("请输入n:");
    scanf("%d",&n);
    h=(struct quenode*)malloc(sizeof (struct quenode));
    h->next=NULL;
    Q.front=h;
    Q.rear=h;
    printf("请输入队列元素:");
    for(i=1;i<=n;i++){
        scanf("%d",&x);
        insert(que,x);
    }
}