더북(TheBook)

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");
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.