전공/C
[C 언어] 1차원 배열 - 기차표 예매
BBungyaLog
2022. 9. 22. 22:07
# 실행창

# 코드
#define SIZE 10
#include <stdio.h>
int askReservation();
void printSeats(int s[], int size);
void processReservation(int s[], int size, int seatNumber);
int main(void)
{
int number;
int seats[SIZE] = { 0 };
printf("******좌석 예약 시스템******\n");
printSeats(seats, SIZE);
while (seats[SIZE - 1] == 0)
{
number = askReservation();
processReservation(seats, SIZE, number);
printSeats(seats, SIZE);
while (getchar() != '\n'); // 버퍼 비움
}
}
int askReservation()
{
int num;
printf("\n좌석을 예약하시겠습니까?(몇 명) ");
scanf_s("%d", &num);
return num;
}
void processReservation(int s[], int size, int num)
{
int i, j;
for (i = 0; i < SIZE; i++)
if (s[i] == 0)
{
if (i + num > size) {
printf(">>> %d명은 예약 불가\n", i + num - size);
for (j = i; j < size; j++)
s[j] = 1;
}
else
for (j = i; j < i + num; j++)
s[j] = 1;
break;
}
printf("\n");
}
void printSeats(int s[], int size)
{
int i;
printf("----------------------\n");
printf(" 1 2 3 4 5 6 7 8 9 10\n");
printf("----------------------\n");
for (i = 0; i < SIZE; i++)
printf("%2d", s[i]);
printf("\n");
}