#include <stdio.h>
#define SIZE 10
int main(void)
{
char ans1;
int ans2,i;
int seat[SIZE] = {0};
while(1)
{
printf("좌석을 예약 할건가 (y 또는 n)");
scanf("%c",&ans1);
if(ans1=='y' || 'Y')
{
printf("---------------------------\n");
printf(" 1 2 3 4 5 6 7 8 9 10 \n");
printf("===========================\n");
for(i=0; i<SIZE;i++)
printf("%d ",seat[i]);
printf("몇번쨰 좌석을 예약할건가 ");
scanf("%d",&ans2);
if(ans2 <=0 ||ans2>SIZE)
{
printf("1부터 10사이의 숫자를 입력하시오 \n");
continue ;
}
if(seat[ans2-1]==0)
{
seat[ans2-1]=1;
printf("예약되었습니다 .\n");
}
else
printf("이미 예약된 자리입니다.\n");
}
else if(ans1 =='n')
return 0;
}
return 0;
}
위 코드중에
if(seat[ans2-1]==0)
{
seat[ans2-1]=1;
printf("예약되었습니다 .\n");
}
이부분이 잘이해가되지않는데 만약 사용자로부터 4를입력받으면
if(seat[4-1]==0)
{
seat[4-1]=1;
printf("에약되었습니다 .\n");
}
이렇게되는거아닌가요 뭔가이해가안되요
배열 인덱스 개념에대해서 한번 그림을그려봐
너가 10칸짜리 칸(배열)을 만든다고할떄 arr[10] = {0,} 이라고하잖아? 이럼 칸10개에 0이 채워져있겠지?
이때 각칸의 이름은 arr[0] ~ arr[9]까지있겠지... 0부터니까 0~9까지 10개인거야. arr[10]은 없어
그러니까 내가 1번자리에 예약을하고싶다 하면 arr[0]에 저장을해야하는거고 이건 말하자면 arr[입력받은값 -1]이라고 할수있겠지 ㅇㅋ?
감사해욧
그럼 if(seat[4-1]==0) { seat[4-1]=1; printf("에약되었습니다 .n"); } 이건 4를입력받았다면 저게 3번자리에 저장을한다는소린가여 ? ==0 이랑 =1 부분이 뭐가다른지잘모르겠어서
=0. 좌석이 비어있으면 =1. 좌석을 채우겠다는 연산인듯
오타. ==0