원형큐인데 어느부분에서 잘못된지 모르겠네요..
아유미
#includestdio.h
#define QUEUE_SIZE 5
void addq(data);
int deleteq();
int queue[QUEUE_SIZE];
int front=0;
int rear=0;
void main(){
int select;
int data;
printf(큐를 찍어주세요.\n\n\n);
while(1){
printf(1.채워준다 2.빼낸다 3.그만둔다 = );
scanf(%d,&select);
/* 큐에 데이터 삽입 */
if(select==1){
printf(무엇을 넣을까? );
scanf(%d, &data);
printf(\n);
addq(data);/* 큐에서 데이터 삭제 */
}else if(select==2){
data=deleteq();
if(data!=-1)
printf(%d이(가) 빠졌다.\n\n,data);
/* 큐에 있는 데이터 출력하고 종료 */
}else if(select==3){
printf(큐 남은것 : );
for(;front!=rear;)
{
printf( %d,deleteq());
}
printf(\n끝~\n);
break;
}else{ /* 선택오류 */
printf(다시 선택하세요\n\n);
}
}
}
void addq(data){
rear=(rear+1)%QUEUE_SIZE;
if(rear==front){
printf(큐가 가득참~\n);
return;
}
else{
queue[rear]=data;
}
}
int deleteq(){
if(front==rear){
printf(큐가 비웠음\n);
return -1;
}else{
front=(front+1)%QUEUE_SIZE;
return queue[front];
}
}
-
서희
시작 : front = 0, rear = 0
1 add : front = 0, rear = 1 -- 검사 ( 1 != 0 ) -- add
2 add : front = 0, rear = 2 -- 검사 ( 2 != 0 ) -- add
3 add : front = 0, rear = 3 -- 검사 ( 3 != 0 ) -- add
4 add : front = 0, rear = 4 -- 검사 ( 4 != 0 ) -- add
5 add : front = 0, rea -
아리알찬
일단 큐안에 계속 넣으면 가득찼다고 나오는데요..가득찬 상태에서 한번더 수를 넣으면 가득찼다는 말은 안나오네요..그래서 큐를 빼면 가득차고 난다음에 숫자를 한번더 입력했는데 그 입력한 숫자가 빠져 나가네요..큐가 가득찼는데 못들어갈텐데..
그리고 나서 한번더 큐를 빼면 비웠다고 나옵니다..그래서 어느부분을 수정을 해야할지를 모르겠네요.