이번 포스팅에서는 동전 던지기 코드를 작성해보았습니다.
단순히 반복문과 break만 쓰면 될 줄 알았는데,
getchar(); 를 빼먹었다가 엄청 고민한 끝에 해결했네요.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int b_rand(); // 0~1의 난수를 반환
int main(void)
{
int num;
char ret;
srand((unsigned)time(NULL));
while(1)
{
printf("앞면 또는 뒷면(1 또는 0): ");
scanf("%d", &num);
{
if (num == b_rand())
{
printf("맞았습니다.\n");
}
else
{
printf("틀렸습니다.\n");
}
printf("계속하시겠습니까?(y 또는 n): ");
getchar(); // 헤맸던 부분!!
scanf("%c", &ret);
if (ret == 'n')
{
break;
}
else if (ret == 'y')
{
continue;
}
}
}
return 0;
}
int b_rand()
{
return rand() % 2;
}
while(1)을 통해 무한루프를 우선적으로 구성해주었구요.
컴퓨터가 생성한 난수와 사용자가 입력한 값이 일치하면 맞았습니다. 아닌 경우 틀렸습니다.를 호출되게 하였습니다.
다음으로 n이 입력되면 게임이 종료되고, y가 입력되면 게임이 계속 진행되게 하였습니다.
여기서 getchar() 함수는 표준 입력 스트림(stdin)인 키보드로부터 하나의 문자를 입력받는 함수로 정의되는데요.
해당 함수의 사용유무가 이런 결과를 초래한다는 것을 알아갈 수 있었던 좋은 예제였습니다.
오늘도 하나 알아가네요.
그럼 오늘도 즐거운 코딩!
반응형
'코딩 | 개념 정리 > C' 카테고리의 다른 글
[C언어] 함수를 활용한 계산기 만들기 (0) | 2021.04.14 |
---|---|
[C언어] 함수를 활용해 두 개의 부동 소수점 일치 판별하기 (0) | 2021.04.13 |
[C언어] 함수를 활용해 오일러의 수 구하기 (0) | 2021.04.12 |
[C언어] 함수를 활용해 2부터 100 사이의 소수 출력하기 (0) | 2021.04.12 |
[C언어] 함수를 활용해 두 점 사이의 거리 구하기 (0) | 2021.04.12 |