【简单】帮检查下这个代码哪里出问题

valuesun 2008-06-09 11:48:38
帮检查下这个代码哪里出问题,谢谢了

/*验证队列满时rear的指向*/
#include<stdio.h>
#define MAXSIZE 5
typedef struct
{
int data;
}QElemType;
typedef struct
{
QElemType *base;
int front;
int rear;
}SqQueue;
Status InitQueue(SqQueue &Q) /*提示这里有语法错误*/
{
Q.base=(QElemType *)malloc(MAXSIZE *sizeof(QElemType));
if(!Q.base)exit(OVERFLOW);
Q.front=0;
Q.rear=0;
}
main()
{
int i;
SqQueue Q[MAXSIZE];
InitQueue(Q); /*队列初始化*/
for(i=0;i<MAXSIZE;i++) /*写入*/
{Q.base[i]=i;
Q.rear=(Q.rear+1)%MAXSIZE;
}
printf("Q.base[Q.rear]=%d",Q.base[Q.rear]);
}
...全文
80 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
valuesun 2008-06-18
  • 打赏
  • 举报
回复
明白,多谢楼上的回答
mmmcd 2008-06-14
  • 打赏
  • 举报
回复

/*验证队列满时rear的指向*/
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define MAXSIZE 5
#define OVERFLOW 1
typedef struct
{
int data;
}QElemType;

typedef struct
{
QElemType *base;
int front;
int rear;
}SqQueue;

void InitQueue(SqQueue &Q)
{
Q.base=(QElemType *)malloc(MAXSIZE *sizeof(QElemType));
if(!Q.base)exit(OVERFLOW);
Q.front=0;
Q.rear=0;
}
int main()
{
int i;
SqQueue Q;
InitQueue(Q); /*队列初始化*/
for(i=0;i <MAXSIZE;i++) /*写入*/
{
QElemType elem;
elem.data = i;
Q.base[i]=elem;
Q.rear=(Q.rear+1)%MAXSIZE;
}
printf("Q.base[Q.rear]=%d",Q.base[Q.rear]);
return 0;
}

valuesun 2008-06-14
  • 打赏
  • 举报
回复
要怎么定义,我不知道,帮哈
可口可乐 2008-06-10
  • 打赏
  • 举报
回复
Status InitQueue(SqQueue &Q) //Status是个什么东西?
exit(OVERFLOW); //OVERFLOW是个什么东西?
SqQueue Q[MAXSIZE]; Q.base[i] //Q是个数组,怎么直接就Q.base

太多的不明白,不知道lz用的是哪国的C语言?
可口可乐 2008-06-10
  • 打赏
  • 举报
回复
关键是我没有看见你在哪儿定义Status,OVERFLOW呀
valuesun 2008-06-10
  • 打赏
  • 举报
回复
楼上的,我用的是结构体哦

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧