더북(TheBook)

5.5.2 정답 입력받기

난수로 생성한 두 수를 전달받아 문제를 내는 부분까지 작성했습니다. 그다음은 뭘 해야 할까요? showQuestion()함수에서 ‘비밀번호를 입력하세요.’라는 문구가 나왔으니 사용자가 답을 입력하는 부분이 필요하겠죠? 문제를 출제하는 함수 호출 다음에 답을 입력받는 scanf_s()문을 작성합니다. 이때 입력값을 저장해야 하므로 answer라는 정수형 변수를 먼저 만듭니다. 그리고 초깃값은 -1로 넣습니다.

5.5 프로젝트.c

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); // 답 입력
}

Note 변수의 초깃값

초깃값은 경우에 따라 다르게 설정합니다. 만약 어떤 프로그램이 3가지 동작을 제공하고 각 동작의 번호가 1, 2, 3이라면 초깃값은 이들을 제외한 다른 숫자를 사용합니다. 그러면 사용자로부터 값을 입력받았을 때 이 값이 1, 2, 3에 해당하면 의도적인 값이므로 해당 동작을 수행하고, 그렇지 않으면 다시 입력하라거나 프로그램을 종료할 수 있지요. 그런데 초깃값을 1로 설정하면 사용자의 입력 대기 부분이 의도치 않게 삭제됐을 때 원하지 않는 1번 동작이 수행될 수도 있습니다. 그래서 혼란을 피하는 방향으로 초깃값을 설정하기도 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.