主题:[讨论]请问大家下面的代码哪里错误了
请问大家下面的代码哪里错误了(该代码是实现队列的顺序存储结构),编译不成功,说是我的DleQ函数和outlin函数是非法的,为什么?谢谢了!
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
#define ElemType int
typedef struct
{
ElemType elem[MAXSIZE];
int front,rear;
}SeQueue;
SeQueue Q;
void outlin(SeQueue Q);
void creat(SeQueue *Q);
void insert(SeQueue *Q,ElemType x);
ElemType DelQ(SeQueue *Q);
void main()
{
int x,y,cord;
do{
printf("\n 主菜单 \n");
printf(" 1 建立链表队列 \n");
printf(" 2 入队一个元素 \n");
printf(" 3 出对一个元素 \n");
printf(" 4 结束程序运行 \n");
printf("-------------------------------\n");
printf("请输入您的选择(1,2,3,4)");
scanf("%d",&cord);
switch(cord)
{
case 1:{ creat(&Q);
outlin(Q);
}break;
case 2:{ printf("\n x=?");
scanf("%d",&x);
insert(&Q,x);
outlin(Q);
}break;
case 3:{ y=DelQ(&Q);
printf("\n x=%d",y);
outlin(Q);
}break;
case 4:exit(0);
}
}while(cord<=4);
}
void creat(SeQueue *Q)
{int n,i,x;
Q->front=-1;
Q->rear=-1;
printf("n=");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("\n data=");
scanf("%d",&x);
insert(Q,x);
}
}
void insert(SeQueue *Q,ElemType x)
{
if((Q->rear+1)%MAXSIZE==Q->front)
printf("QUEUE is FULL!\n");
else{
Q->rear=(Q->rear+1)%MAXSIZE;
Q->elem[Q->rear]=x;
}
ElemType DelQ(SeQueue *Q)
{if(Q->front==Q->rear)
printf("QUEUE is FULL!\n");
return-1;
else
{Q->front=(Q->front+1)%MAXSIZE;
return(Q->elem[Q->front]);
}
}
void outlin(SeQueue Q)
{if(Q.rear==Q.front)
printf("QUEUE is FULL!\n");
else for(i=0;i>=Q.rear;i--)
printf("\n %2d %6d",i,Q.elem[i]);
}
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
#define ElemType int
typedef struct
{
ElemType elem[MAXSIZE];
int front,rear;
}SeQueue;
SeQueue Q;
void outlin(SeQueue Q);
void creat(SeQueue *Q);
void insert(SeQueue *Q,ElemType x);
ElemType DelQ(SeQueue *Q);
void main()
{
int x,y,cord;
do{
printf("\n 主菜单 \n");
printf(" 1 建立链表队列 \n");
printf(" 2 入队一个元素 \n");
printf(" 3 出对一个元素 \n");
printf(" 4 结束程序运行 \n");
printf("-------------------------------\n");
printf("请输入您的选择(1,2,3,4)");
scanf("%d",&cord);
switch(cord)
{
case 1:{ creat(&Q);
outlin(Q);
}break;
case 2:{ printf("\n x=?");
scanf("%d",&x);
insert(&Q,x);
outlin(Q);
}break;
case 3:{ y=DelQ(&Q);
printf("\n x=%d",y);
outlin(Q);
}break;
case 4:exit(0);
}
}while(cord<=4);
}
void creat(SeQueue *Q)
{int n,i,x;
Q->front=-1;
Q->rear=-1;
printf("n=");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("\n data=");
scanf("%d",&x);
insert(Q,x);
}
}
void insert(SeQueue *Q,ElemType x)
{
if((Q->rear+1)%MAXSIZE==Q->front)
printf("QUEUE is FULL!\n");
else{
Q->rear=(Q->rear+1)%MAXSIZE;
Q->elem[Q->rear]=x;
}
ElemType DelQ(SeQueue *Q)
{if(Q->front==Q->rear)
printf("QUEUE is FULL!\n");
return-1;
else
{Q->front=(Q->front+1)%MAXSIZE;
return(Q->elem[Q->front]);
}
}
void outlin(SeQueue Q)
{if(Q.rear==Q.front)
printf("QUEUE is FULL!\n");
else for(i=0;i>=Q.rear;i--)
printf("\n %2d %6d",i,Q.elem[i]);
}