● 문제 출력 부분 함수로 바꾸기
앞에서 간단하게 작성한 문제 출력 부분도 함수로 바꿔 보겠습니다.
➊ 함수명은 showQuestion으로 합니다. showQuestion()함수는 문제를 출력하므로 곱하는 두 수가 필요합니다. 따라서 함수를 호출할 때 getRandomNumber()함수가 반환한 두 수가 담긴 변수 num1, num2를 전달합니다. 그리고 문제와 함께 몇 번째 문제인지도 출력하겠습니다. 이를 위해 문제 단계에 해당하는 i 값도 전달합니다.
➋ 호출하기 전에 함수를 선언해야죠? showQuestion()함수는 문제를 화면에 보여 주기만 하면 돼서 반환값이 필요 없습니다. 따라서 반환형은 void면 됩니다. 매개변수는 전달값에 맞춰 문제 단계(int level)와 곱하는 두 수(int num1, int num2)를 받는 정수형 변수로 선언합니다.
➌ main()함수 아래 showQuestion()함수를 정의합니다. showQuestion()함수는 문제를 출력하는 부분이니 화면에서 잘 보이게 printf()문을 조금 꾸며 보겠습니다.
➍ 전달받은 문제 단계를 사용해 몇 번째 문제인지 printf()문으로 출력합니다.
➎ 기존 코드를 활용해 문제를 출력합니다. 이때 앞뒤로 \t를 추가해 문제를 구분합니다.
TIP \t는 탭을 의미하는 특수 문자입니다. 탭은 스페이스 8칸과 같으므로 그만큼 빈칸을 출력하라는 뜻입니다.
➏ printf()문으로 # 기호를 출력해 행을 구분합니다. 마지막으로 비밀번호, 즉 문제의 정답을 입력하게 하는 안내 문구를 printf()문으로 출력합니다. 여기서 문제를 풀다가 도저히 모르겠거나 문제 풀기를 관두고 싶을 때가 있을 겁니다. 이를 위해 -1을 입력하면 퀴즈를 종료한다고도 안내합니다.