• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

몇개의 병이 보이선택된건지 나오지 않습니다.

20.03.01 14:06 작성 조회수 218

0

실행을 하면

1번째 시도 : 물약을 머리에 바릅니다...

>>실패! 머리가 나지 않았어요..

라고만 나와요ㅠㅠ ('1번째 시도 :' 와 '물약을 머리에 바릅니다..' 사이에 몇번 물약을 선택했는지 나와야하는데..) 그리고 계속 '실패!'만 나오네요.. treatment 선택이 안되는것같은데 코드를 아무리 찾아봐도 모르겠어요..

#include <stdio.h>

#include <time.h>

int main(void)

{

srand(time(NULL));

printf("\n\n === 아빠는 대머리 게임 === \n\n");

int answer; //사용자 입력값

int treatment = rand() % 4; //발모제 선택 (0~3)

int cntShowBottle = 0; // 이번 게임에 보여줄 병 갯수

int prevcntShowBottle = 0; //앞게임에서 보여준 병 갯수

//서로 보여주는 병 갯수를 다르게 하여 정답률 향상 (처음에 2개 -> 다음엔 3개 ...)

//3번의 기회

for (int i = 1; i <= 3; i++)

{

int bottle[4] = { 0,0,0,0 }; //4개의 병

do {

cntShowBottle = rand() % 2 + 2; //보여줄 병 갯수 (0~1, +2 -> 2,3)

} while (cntShowBottle == prevcntShowBottle);

cntShowBottle = prevcntShowBottle;

int isIncluded = 0; // 보여줄 병에 발모제가 포함되어있는지 여부 ( 1: 포함)

printf("> %d번째 시도 : ", i);

//보여줄 병 종류를 선택

for (int j = 0; j < cntShowBottle; j++)

{

int randBottle = rand() % 4; // 0~3

//아직 선택되지 않은 병이면, 선택처리

if (bottle[randBottle] == 0)

{

bottle[randBottle] = 1;

if (randBottle == treatment)

{

isIncluded = 1;

}

}

//이미 선택된 병이면, 중복이므로 다시 선택

else

{

j--;

}

}

//사용자에게 문제 표시

for (int k = 0; k < 4; k++)

{

if (bottle[k] == 1)

printf("%d", k + 1);

}

printf("물약을 머리에 바릅니다...\n\n\n");

if (isIncluded == 1)

{

printf(" >> 성공! 머리가 났어요!!\n");

}

else

{

printf(" >> 실패! 머리가 나지 않았어요..\n");

}

printf("\n ... 계속하려면 Enter키를 누르세요.");

getchar();

}

printf("\n\n발모제는 몇 번일까요?");

scanf_s("%d", &answer);

if (answer == treatment + 1)

{

printf("\n>> 정답입니다!\n");

}

else

{

printf("\n>> 틀렸습니다.. 정답은 %d입니다.\n", treatment + 1);

}

return 0;

}

근데 rand() %4; 하면 rand에 노란색 표시가 뜨는데

int treatment  = rand() % 4; 부분에는 노란색표시가 안나와요.. 여기부분이 문제인것같은데 뭐가 잘못된걸까요..?

답변 2

·

답변을 작성해보세요.

0

^^ 잘 해결해셨다니 다행입니다 !

0

하얀엿님의 프로필

하얀엿

질문자

2020.03.01

12:50 에서 설명을 잘못들어서

preㅍcntShowBottle = cntShowBottle; 를

cntShowBottle = prevcntShowBottle; 로 적었네요..

'='가 수학이랑 다르게 순서가 중요했네요...

한참 헤매다가 겨우찾았네요..ㅠㅠ

오늘도 하나 배우고 갑니다!