random()함수를 사용하여 1~100까지의 정수 중 랜덤으로 나오는 값을 맞추시오.
70수 입력 : 69
더 높습니다.
수 입력 : 90
더 낮습니다.
수 입력 : 89
더 낮습니다.
수 입력 : 78
더 낮습니다.
수 입력 : 76
더 낮습니다.
수 입력 : 69
더 높습니다.
수 입력 : 70
70이 맞습니다.
Good!
random()
을 사용할 것Great
Good
노력하세요
를 출력할 것#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
srand((unsigned int)time(NULL));
int random = rand() % 100 + 1;
int num = 0, cnt = 1;
printf("%d\n", random);//테스트용 출력문
do {
printf("수 입력 : ");
scanf_s("%d", &num);
if (random == num) {
printf("%d이 맞습니다.\n", num);
if (cnt <= 4) printf("Great!\n");
else if (cnt <= 8) printf("Good!\n");
else printf("노력하세요!\n");
return;
}
else if (random > num) printf("더 높습니다.\n\n");
else printf("더 낮습니다.\n\n");
cnt++;
} while (random != num);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
srand((unsigned int)time(NULL));
int random = rand() % 100 + 1;
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
를 작성하고,
srand((unsigned int)time(NULL))
로 random()
을 사용할 기본 세팅을 마친다.
random
변수에 1~100
까지의 랜덤 정수를 저장한다. +1
을 하는 이유는 100
으로 나누면 0~99
까지 나오기 때문이다.
int num = 0, cnt = 1;
printf("%d\n", random);//테스트용 출력문
사용자가 추측하는 변수인 num
을 초기화 시킨다.
사용자가 몇 번만에 맞췄는지를 나타날 변수인 cnt
를 초기화 시킨다. 초기값을 1
로 준 이유는 아래 부분에서 if문
바로 처음에 정답 여부를 체크하기 때문이다. 만약 cnt
의 초기값을 0
으로 주었으면 첫 번째만에 맞혔을 때에 0
번째만에 맞췄다고 프로그램이 인식하게 될 것이다.
그 뒤 보다 빠른 테스트를 위해 현재 들어있는 random
변수를 출력한다. 이 부분은 단지 테스트를 위한 용도이므로 없어도 상관없다.
do {
printf("수 입력 : ");
scanf_s("%d", &num);
if (random == num) {
printf("%d이 맞습니다.\n", num);
if (cnt <= 4) printf("Great!\n");
else if (cnt <= 8) printf("Good!\n");
else printf("노력하세요!\n");
return;
}
else if (random > num) printf("더 높습니다.\n\n");
else printf("더 낮습니다.\n\n");
cnt++;
} while (random != num);
do-while문
을 이용해 random
과 num
이 다르면 계속 반복하도록 만든다.
printf("수 입력 : ");
scanf_s("%d", &num);
사용자가 추측하는 수를 num
변수에 저장한다.
if (random == num) {
printf("%d이 맞습니다.\n", num);
if (cnt <= 4) printf("Great!\n");
else if (cnt <= 8) printf("Good!\n");
else printf("노력하세요!\n");
return;
}
만약 사용자가 추측한 수인 num
과 랜덤으로 주어진 random
이 맞았다면 해당 수가 맞다는 출력문을 작성한다.
만약 시도한 횟수인 cnt
가 4
회 이하라면 Great
를 출력한다.
시도한 횟수인 cnt
가 8
회 이하라면 Good
을 출력한다.
시도한 횟수인 cnt
가 9
회 이상이라면 노력하세요.
를 출력한다.
수를 맞췄기 때문에 바로 if문
에서 return
을 하여 프로그램을 종료한다. while
부분까지 가지 않는 이유는 조금이라도 더 빠르고 적은 데이터를 사용하여 진행하려고 했기 때문이다.
else if (random > num) printf("더 높습니다.\n\n");
else printf("더 낮습니다.\n\n");
cnt++;
만약 사용자가 입력한 수인 num
이 random
변수보다 크다면 더 높습니다.
를 안내한다.
사용자가 입력한 수인 num
이 random
변수보다 작다면 더 낮습니다.
를 안내한다.
맞추지 못했으므로 시도한 횟수인 cnt
를 ++
시켜준다.
95
수 입력 : 34
더 높습니다.
수 입력 : 96
더 낮습니다.
수 입력 : 90
더 높습니다.
수 입력 : 91
더 높습니다.
수 입력 : 95
95이 맞습니다.
Good!