do
{
turn = t % 2;
switch (turn) {
case 1:
c = NULL;
printf("%d 턴 입니다. O돌을 놓을 좌표를 입력하세요.\n", t);
printf("가로 좌표 : ");
scanf_s("%d", &j);
printf("세로 좌표 : ");
c = getchar();
if (c == 'a' || c == 'A')
i = 0;
else if (c == 'b' || c == 'B')
i = 1;
else if (c == 'c' || c == 'C')
i = 2;
a[i][j - 1] = 'O'; //입력한 좌표에 O돌 삽입
break;
case 0:
c = NULL;
printf("%d 턴 입니다. X돌을 놓을 좌표를 입력하세요.\n", t);
printf("세로 좌표 : ");
c = getchar();
printf("가로 좌표 : ");
scanf_s("%d", &j);
if (c == 'a' || c == 'A')
i = 0;
else if (c == 'b' || c == 'B')
i = 1;
else if (c == 'c' || c == 'C')
i = 2;
a[i][j - 1] = 'X'; //입력한 좌표에 X돌 삽입
break;
} while (t <= 9);
처음 실행하면
이렇게 세로 좌표를 잘 받아주는데
그 다음 턴에서는
이렇게 세로좌표를 받지도 않고 그냥 넘어가서 가로좌표를 받아버립니다.
다음은 가로좌표에 2를 입력한 값입니다.
이렇게 나와요.
세로좌표 받지도 않았는데 홀수 턴에 받았던 세로좌표 값 a를 그대로 내보내요
홀수 턴에서는 세로좌표 전부 제대로 받고
짝수 턴에서는 그 전 홀수 턴에 받았던 세로 좌표를 그대로 내보내는데 왜 이러는걸까요? ㅠㅠ
혹시나 해서 제가 1턴에 좌표 받는 순서를 바꿔봤습니다
printf("%d 턴 입니다. O돌을 놓을 좌표를 입력하세요.\n", t);
printf("가로 좌표 : ");
scanf_s("%d", &j);
printf("세로 좌표 : ");
c = getchar();
이렇게 가로좌표 먼저 받게요.
그랬더니
이렇게 프로그램이 그냥 가로좌표만 받고 종료되어버리네요 ㅠㅠ 왜 이러나요? ㅠ