편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.06.09

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


    #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;
    
    
    
            }
    
        }
    
    }
    
  • 프로필 dhdhdhdhdh님의 편집
    날짜2021.06.09

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


    include

    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;
    
    
    
        }
    
    }
    

    }