원형큐 작동이 왜 안되는지 모르겠어요

조회수 442회
#include <stdio.h>
int a[5];
int front = -1;
int rear = -1;

void enQueue(int in)
{

    int i, j;
    if (rear < 4) {
        rear++;
        a[rear] = in;
        printf("a[%d] = %d \n", rear, a[rear]);
    }
    else if (front -1 == rear) {     <--------여기 if가 작동이 안되요 었덯게 바꿔야 되져?
        printf("완전히 가득찼다.\n");
    }
    else if (rear == 4) {
        rear = (rear + 1) % 5;
        a[rear] = in;
        printf("a[%d] = %d \n", rear, a[rear]);
    }
}
int deQueue()
{

    int out;

    if (front == rear) {
        printf("완전히 비어있다.\n");
        rear = -1, front = -1;
        return 0;
    }
    else {
        front++;
        out = a[front];
        printf("a[%d] = %d \n", front, out);
        return out;
    }

}

int main() {

    int inQ;
    int outQ;

    int select;

    while (1) {
        printf("1번 enQueue  2번 deQueue 3번 종료");
        scanf_s("%d", &select);

        switch (select)
        {
        case 1:
            scanf_s("%d", &inQ);
            enQueue(inQ);
            break;
        case 2:
            outQ = deQueue();
            break;
        case 3:
            return 0;
            break;



        }

    }

}

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)