함수 res, can부분에서 처음에 scanf로 입력받을 때 예를들어 B3이라고 입력하면

B만 r_A에 제대로 들어가고 3은 r_i에 안들어가요 ㅠㅠㅠㅠㅠㅠ

그냥 처음에 초기화한대로 0만 계속 나와요.. 왜이런건지 알 수 있을까요..? ㅠㅠ

프로그램은 5x5배열인 영화관에서 예매하는 프로그램이예요! 0이면 자리 있고, 1이면 자리 없음..

저 문제만 해결하면 바로 돌아갈텐데 미치겠네요 진짜..


#include<stdio.h>

#include<time.h>

#include<stdlib.h>

#define _CRT_SECURE_NO_WARNINGS


int i, j, k;


void chk(int seat[][5])

{

printf(" \t0\t1\t2\t3\t4\n");

for (i = 0; i < 5; i++)

{

printf("%c", i + 65);

for (j = 0; j < 5; j++)

{

printf("\t%d", seat[i][j]);

}

printf("\n");

}

}


void res(int seat[][5])

{

char r_A;

int r_i = 0;

rewind(stdin);

printf("예매할 번호를 입력하세요(ex.A0, a0) : ");

scanf_s("%c %d", &r_A, &r_i);

int r_a = r_A - 65;

if (seat[r_a][r_i] == 0)

{

printf("예매가 완료 되었습니다.\n");

seat[r_a][r_i]++;

chk(seat);

}

else if (seat[r_a][r_i] == 1)

{

printf("예매 할 수 없는 좌석입니다.\n");

}

rewind(stdin);

}


void can(int seat[][5])

{

char r_A;

int r_i = 0;

rewind(stdin);

printf("예매 취소할 번호를 입력하세요(ex.A0, a0) : ");

scanf_s("%c%d", &r_A, &r_i);

int r_a = r_A - 65;

if (seat[r_a][r_i] == 1)

{

seat[r_a][r_i]--;

printf("취소가 완료 되었습니다.\n");

chk(seat);

}

else if (seat[r_a][r_i] == 0)

{

printf("취소 할 수 없는 좌석입니다.\n");

}

rewind(stdin);

}


int main()

{

int seat[5][5] = { 0, };

srand((long)time(NULL));

for (i = 0; i < 5; i++)

{

for (j = 0; j < 5; j++)

{

seat[i][j] = rand() % 2;

}

}

int num = 0;

do

{

printf("\n메뉴를 선택하세요. 예매(1), 예매 취소(2), 조회(3), 종료(0) : ");

scanf_s("%d", &num);

switch (num)

{

case 1:

{

chk(seat);

res(seat);

break;

}

case 2:

{

chk(seat);

can(seat);

break;

}

case 3:

chk(seat);

break;

}

} while (num != 0);


return 0;

}