스택 큐 프로그램 질문입니다
찬솔나라
질문 제목 : 스택으로 공간을 구현하여 만드는건 실행이 잘되서 이제 추가로
큐를 사용하여 2개의 공간으로 사용하려고하는데 실행이 안되네요
어디가 잘못된건지 부탁드리겟습니다
#include stdio.h
#define PARK_SIZE 3
typedef struct {
int key;
} element1, element2;
typedef struct{
element2 queue[PARK_SIZE];
int front, rear;
}park2;
void park_full()
{
printf(\n 주차공간이 꽉참\n);
printf( 다른 주차장 가세여\n\n);
}
void push(element1 *park, int *top, element1 item)
{
if(*top = PARK_SIZE-1){
park_full();
return;
}
park[++*top] = item;
}
element1 park_empty()
{
element1 empty;
empty.key = 0;
printf(\n 주차장이 비어있습니다.\n);
return empty;
}
element1 pop(element1 *park, int *top)
{
if(*top == -1 )
return park_empty();
return park[(*top)--];
}
void print_park(element1 *park, int top)
{
int i;
printf(┏━━━━━━━━━[주차장]━━━━━━━━━┓\n);
for(i=0; i= top; i++)
{
printf(┃ 주차장 %d번 자리에 [%d번] 자동차가 주차중,,┃\n, i+1, park[i].key);
}
printf(┗━━━━━━━━━[입출구]━━━━━━━━━┛\n);
printf( [ ] \n);
printf( [ ] \n);
printf(\n);
}
void inQueue(element2 *park2, int *rear, element2 item2)
{
if(*rear = PARK_SIZE-1){
park_full();
return;
}
park2[++*rear] = item2;
}
element2 park2_empty2()
{
element2 empty2;
empty2.key = 0;
printf(\n 주차장이 비어있습니다.\n);
return empty2;
}
element2 deQueue(element2 *park2, int *front)
{
if(*front == -1)
return park2_empty2();
return park2[(*front)];
}void print_park2(element2 *park2, int rear, int front)
{
int i;
printf(┏━━━━━━━━━[주차장]━━━━━━━━━┓\n);
for(i=front+1; i= rear; i++)
{
printf(┃ 주차장 %d번 자리에 [%d번] 자동차가 주차중,,┃\n, i+1, park2[i].key);
}
printf(┗━━━━━━━━━[입출구]━━━━━━━━━┛\n);
printf(\n);
}
void main()
{
element1 park[PARK_SIZE];
element2 park2[PARK_SIZE];
int n, top=-1, front=-1, rear=-1;
int select;
char choice;
element1 item;
element2 item2;
do
{
printf(\n);
printf(┏━━━━━━━━━━━━━┓\n);
printf(┃ 주차관리프로그램 ┃\n);
printf(┣━━━━━━━━━━━━━┫\n);
printf(┃ 1. 차량주차하기 ┃\n);
printf(┃ 2. 차량출고하기 ┃\n);
printf(┃ 3. 현재차량현황 ┃\n);
printf(┃ 0. 프로그램종료 ┃\n);
printf(┗━━━━━━━━━━━━━┛\n);
printf( # 보기를 고르세요! --- );
scanf(%d, &select);
switch(select){
case 1:
{
printf(지상(U), 지하(D)\n);
scanf(%c, &choice);
switch(choice){
case 1:
printf(\n주차할 차량번호: );
scanf(%d, &n);
item.key = n;
push(park, &top, item);
break;
case 2:
printf(\n주차할 차량번호: );
scanf(%d, &n);
item2.key = n;
inQueue(park2, &rear, item2);
break;
}
}
case 2:
{
printf(지상(U), 지하(D)\n);
scanf(%c, &choice);
switch(choice){
case 1:
pop(park, &top);
break;
case 2:
deQueue(park2, &front);
break;
}
}
case 3:
print_park(park, top);
break;
case 0:
printf(\n오늘 영업 끝..\n);
break;
}
}while(select != 0);
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2694258 | 카운터.. 질문입니다. (4) | 하늘빛눈망울 | 2025-05-09 |
2694229 | 단순한 질문이요 (8) | 여름 | 2025-05-09 |
2694202 | 용돈을 가지고 할 수 있는 일을 여러가지로 출력하는 방법 좀 알려주세요! (2) | 미나 | 2025-05-09 |
2694145 | 화면깜빡임을 없애고 싶은데요... (1) | 어서와 | 2025-05-08 |
2694069 | unsigned 질문입니다. | 힘차 | 2025-05-07 |
2694012 | 전공 비전공자 개발자 (10) | 말글 | 2025-05-07 |
2693984 | 오버로딩이 무엇인가요? (2) | 헛매질 | 2025-05-07 |
2693956 | PlaySound재생이 안됩니다!(C에 음악넣기) | 지존 | 2025-05-06 |
2693928 | &와 *의 사용에 관한 명확한 이해 | 제나 | 2025-05-06 |
2693903 | 반복문 설명좀요 ㅠㅠ (2) | 란새 | 2025-05-06 |
2693869 | stdio.h 는 왜 쓰는건가요? (1) | 큰꽃들 | 2025-05-06 |
2693842 | 포인터 변수의 주소값끼리 더하는 것에 대해서 질문드립니다. (1) | 진솔 | 2025-05-05 |
2693811 | 소수 출력;;;; | 화이트캣 | 2025-05-05 |
2693788 | 이런 함수는 없나요? (3) | 앤드류 | 2025-05-05 |
2693758 | txt파일 불러와서 행렬로 저장 | 큰애 | 2025-05-05 |
2693727 | scanf 오류 문제!! (2) | 큰나래 | 2025-05-04 |
2693704 | 구조체 주소록 문제인데 도와주세요 (2) | 도1도캣 | 2025-05-04 |
2693676 | 열혈강의 c언어 질문입니다 | 하양이 | 2025-05-04 |
2693647 | 12.620000 을요 12.620 으로 어떻게 표현해요? (2) | 파도 | 2025-05-04 |
2693619 | 타이틀 코드.. | 단순드립 | 2025-05-03 |