Study/Computer

C언어를 활용한 간단한 코드 : 동전 던지기

MuviSsum 2019. 12. 11. 15:38

 동전을 100번 던져서 앞, 뒷면이 나오는 횟수와 사용자가 앞면에 많이 나왔는지 뒷면에 많이 나왔는지를 맞추는 프로그램을 작성해보겠습니다.

 일단 랜덤으로 돌려야 하니 srand(time(NULL)); 로 시간마다 초기화를 해줍니다.

 random = rand() % 2; 으로 0,1을 표현합니다. 표현한 random은 for문으로 loop를 돌려주고요.

 그리고 그 변수들은 다 더하고 앞면, 즉 0이 나왔을 때 front++을 해주고 뒷면이 나오면 back++을 해줍니다.

 그리고 결과는 front와 back 그리고 예측한(입력한) 0,1을 통해 if문으로 표현하여 줍니다.

 if문을 너무 많이 사용한 감이 있는데.. 모든 경우의 수를 나타내려다 보니^^


#include  <stdio.h>
#include  <stdlib.h>
#include  <time.h>

int main() {
   srand(time(NULL));
   int tmp, random;
   int front = 0, back = 0;

   printf("동전의 어느 면이 많이 나왔나요? (0:앞면  1:뒷면) :");
   scanf_s("%d", &tmp);
   printf("결과\n");
   for (int i = 0; i < 100; i++) {
      random = rand() % 2;
      if (random == 0)
         front++;
      else
         back++;
   }
   printf("동전의 앞면: %d\n", front);
   printf("동전의 뒷면: %d\n", back);
   if(front > back && tmp == 0)
      printf("당신은 맞추었습니다.\n");
   else if (front > back && tmp == 1)
      printf("당신은 틀렸습니다.\n");
   else if (front < back && tmp == 0)
      printf("당신은 틀렸습니다.\n");
   else if (front < back && tmp == 1)
      printf("당신은 맞추었습니다.\n");
   else if (front == back && tmp == 0)
      printf("동전은 50:50으로 나왔습니다.\n");
   else if (front == back && tmp == 1)
      printf("동전은 50:50으로 나왔습니다.\n");
   else
      printf("잘못된 숫자를 입력하였습니다.");
   return 0;
}

반응형