请问这串代码错在什么地方
程序代码:
#include<iostream> #include<stdio.h> using namespace std; enum Error_code{underflow, overflow, success}; const int maxqueue =1000; // small value for testing typedef double Queue_entry; class CirQueue { public: CirQueue(); bool empty() const; Error_code serve(); Error_code append(const Queue_entry &item); Error_code retrieve(Queue_entry &item) const; bool full() const; int size() const; void clear(); Error_code serve_and_retrieve(Queue_entry &item); private: int count; int front, rear; Queue_entry entry[maxqueue]; }; CirQueue::CirQueue() { count = 0; rear = maxqueue - 1; front = 0; } bool CirQueue::empty() const { return count == 0; } Error_code CirQueue::append(const Queue_entry &item) { if (count >= maxqueue) return overflow; count++; rear = ((rear + 1) == maxqueue) ? 0 : (rear + 1); //处理队尾的下标 entry[rear] = item; return success; } Error_code CirQueue::serve() { if (count <= 0) return underflow; count--; front = ((front + 1) == maxqueue) ? 0 : (front + 1); return success; } Error_code CirQueue::retrieve(Queue_entry &item) const { if (count <= 0) return underflow; item = entry[front]; return success; } int CirQueue::size() const { return count; } bool CirQueue::full() const { return(count==maxqueue); } void CirQueue::clear() { count = 0; rear = maxqueue-1; front = 0; } Error_code CirQueue::serve_and_retrieve(Queue_entry &item) { if (count <= 0) return underflow; item = entry[front]; count--; front = ((front + 1) == maxqueue) ? 0 : (front + 1); return success; } int main() { double item; CirQueue numbers; cin>>item; while(item!=-1){ numbers.append(item); cin>>item; } while (!numbers.empty()) { numbers.serve_and_retrieve(item); cout << item << " "; } cout << endl; return 0; }//就是最基本的队列问题,除了主函数基本全是按照老师ppt写的,但是放在作业平台总有两个点过不去
//不知道是漏掉什么点了请帮忙看一下
下面是题目:
(环形队列)请用顺序存储实现环形的数据结构CirQueue。你所实现的环形队列应包括:出队、入队、访问队首、判断队列是否已满,判断队列是否为空等功能。利用你实现的CirQueue实现输入整数序列的顺序输出。
【输入】整数序列以-1结束,序列长度小于100
【输出】输入整数序列的顺序序列
例如:
【输入】3 9 8 2 5 -1
【输出】3 9 8 2 5