5.5.3 전체 코드 확인하기
완성된 코드는 다음과 같습니다. 숫자 2개를 곱하는 문제를 보여 주고 사용자로부터 답을 입력받아서 맞았는지 틀렸는지 확인한 후 문제를 다 풀고 나면 총 몇 개 맞혔는지 결과를 표시합니다. 한번 실행해 볼까요? 중간에 일부러 2문제를 틀려 보겠습니다. 그러면 마지막에 ‘비밀번호 3개를 맞혔습니다.’라는 문장이 출력될 겁니다.
5.5 프로젝트.c
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int getRandomNumber(int level);
void showQuestion(int level, int num1, int num2);
void success();
void fail();
int main(void) {
srand(time(NULL));
int count = 0;
for (int i = 1; i <= 5; i++) {
int num1 = getRandomNumber(i);
int num2 = getRandomNumber(i);
showQuestion(i, num1, num2);
int answer = -1;
scanf_s("%d", &answer);
if (answer == -1) {
printf("\n프로그램을 종료합니다.\n");
exit(0);
} else if (answer == num1 * num2) {
success();
count++;
} else {
fail();
}
}
printf("\n\n비밀번호 %d개를 맞혔습니다.\n", count);
return 0;
}
int getRandomNumber(int level) {
return rand() % (level * 9) + 1;
}
void showQuestion(int level, int num1, int num2) {
printf("\n\n\n########## %d번째 비밀번호 ########\n", level);
printf("\n\t%d x %d ?\n\n", num1, num2);
printf("##################################\n");
printf("\n비밀번호를 입력하세요.(종료를 원하면 -1 입력) >> ");
}
void success() {
printf("\n >> Good! 정답입니다.\n");
}
void fail() {
printf("\n >> 땡! 틀렸습니다.\n");
}