언어/C
[C] 조건문 - 업 다운 게임 만들기
돌멩이수프
2022. 4. 24. 21:07
728x90
#include <stdio.h>
#include <stdlib.h> // rand() 함수 포함 라이브러리
#include <time.h> // time() 함수 포함 라이브러리
int main(void)
{
srand(time(NULL)); // 매번 다른 난수
int number = (rand() % 100) + 1;
printf("난수는 %d 입니다.\n\n", number);
int answer = 0;
int chance = 5;
while (1)
{
printf("숫자를 맞혀보세요. 기회는 %d번 입니다. : ", chance--);
scanf_s("%d", &answer);
if (answer > number)
{
printf("Down\n");
}
else if (answer < number)
{
printf("Up\n");
}
else if (answer == number)
{
printf("정답입니다!\n");
break;
}
else
{
printf("오류 발생\n\n");
}
if (chance == 0)
{
printf("게임이 끝났습니다.\n");
break;
}
}
return 0;
}
1~100 사이의 숫자 중 무작위로 지정된 한 숫자를 맞추는 게임이다.
<난수>
난수를 지정할 때는 반드시
#include <stdlib.h> // rand() 함수 포함 라이브러리
#include <time.h> // time() 함수 포함 라이브러리
이렇게 라이브러리를 지정해줘야 rand(), time()이 사용 가능하다.
int number = (rand() % 100) + 1;
위 코드는 1부터 100 사이의 무작위 함수를 number변수에 지정해주는 데 사용된다. 만약 0부터 20 중에서 난수를 지정해주고 싶다면,
int number = rand() % 20;
를 쓰면 된다.
<scanf_s>
기존 비쥬얼 스튜디오에서는 사용자에게 값을 받기 위해 scanf를 사용했다. 지금은 에러로 인해 프로그램이 실행되지 않는 경우를 피하기 위해 scanf_s 함수를 사용한다. 나도 사용자에게 정답값을 받기 위해 scanf_s를 사용했다.
scanf_s("%d", &answer);
나는 정수가 필요하기 때문에 사용자가 줄 값에 "%d"를 사용했다. 문자를 받기 위해서는 "%s", 실수를 위해서는 "%f" 등을 사용한다. 실수의 경우 소수점 아래 두 자리수만 출력하고 싶은 경우 "%.2f"라고 쓰면 된다.
728x90