목표: 2차원 배열로 영화관 티켓 구매 시스템을 구현해보자
조건1: 자리가 있는지 확인하는 함수를 만들어라
조건2: 현재 자리의 상태 호출하는 함수
조건3: 2차원 배열을 전역변수로 만들어 사용하여라
저같은 경우는 2차원 배열의 값이 0이면 예약이 안된상태 1이면 예약이 된상태로 만들어 출력을 해보았습니다.
답안:
#include <stdio.h>
int check(char, int);//자리가 있는지 확인을 해주는 함수
void seat();//현재 자리의 상태 호출하는 함수
int book[6][10] = { 0 };
void main(void) {
char row;
int column;
printf("\t\t<2차원 배열 영화관에 오신것을 환영합니다>\n\n");
printf("현재 이용 가능한 자리입니다:\n");
seat(); //자리 현황을 불러 오는 함수
while (1) {
printf("행을 입력해주세요:");
row = getchar();
printf("열을 입력해주세요:");
scanf_s("%d", &column);
if (check(row, column) == 1) {
seat(); //예약되었는지 확인
printf("당신의 자리는 %c행 %d열 입니다\n", row, column);
break;
}
}
}
int check(char row, int column) {
if (book[row - 65][column-1] == 0) {//아스키코드 A=65, B=66 .. 인것을 이용함
printf("예약이 완료되었습니다");
book[row - 65][column-1] = 1;
return 1;
}
else{
printf("이미 예약된 자리입니다\n");
printf("다른 자리를 선택해주세요");
return 0;
}
}
void seat() {
printf("\n 1 2 3 4 5 6 7 8 9 10\n");
//\t을 사용하였는데.. 줄 간격이 안맞아서 이 방법밖에 생각이 안났는데 혹시 저 좋은 방법이 있으신분은.. 댓글로 남겨주시면 감사하겠습니다..
for (int i = 0; i < 6; i++) {
printf("%c ", 65 + i);
for (int j = 0; j < 10; j++) {
if (book[i][j] == 0) {
printf(" 이용가능");
}
else if (book[i][j] == 1) {
printf(" 예약완료");
}
}
printf("\n");
}
}
'코딩 이야기' 카테고리의 다른 글
[C언어] 연도, 월, 일 날짜를 입력하면 요일을 반환하는 함수를 구현해보자( 문자열, 배열 사용) (0) | 2021.08.15 |
---|---|
[C언어] 1차원 배열의 최대값을 찾아보자 (0) | 2021.07.29 |
[C언어] 1차원 배열로 영화관 예약시스템을 구현해보자 (0) | 2021.07.29 |
[C언어] 1차원 배열을 이용하여 주사위 던진것을 표현하기 (0) | 2021.07.28 |
[C언어] 순환함수를 이용하여 조화급수를 계산해보자 (0) | 2021.07.28 |