더북(TheBook)

5.5.1 문제 생성하기

문제를 내는 부분부터 작성해 보겠습니다.

문제가 총 5개이므로 문제 풀기를 5번 반복합니다. 똑같은 동작을 반복 수행하니 for 문으로 작성합니다. 반복 범위가 1~5이므로 i를 1로 초기화하면 조건은 5보다 작거나 같을 때까지입니다.

문제는 x × y = ? 형식으로 출제합니다. 이때 x, y에 들어갈 숫자는 난수로 생성합니다. 생성한 난수를 저장해야 하므로 정수형 변수 num1, 정수형 변수 num2를 선언합니다. 난수는 4.4.1 난수 생성하기에서 배운 rand()함수로 생성합니다. rand()함수는 rand() % n 형식으로 난수를 뽑습니다. 예를 들어, n이 5면 0, 1, 2, 3, 4의 5개 숫자 중에서 하나를 난수로 생성합니다. 여기서는 9까지 뽑는 걸로 해 보죠. 그런데 0이 나오면 어떤 수를 곱해도 항상 0이 되므로 rand() % 9에다가 1을 더해줍니다. 이렇게 하면 rand() % 9의 결과로 나오는 0~8에 1을 더하므로 난수는 1~9에서 나오게 됩니다. 이렇게 난수를 생성해 x에 해당하는 숫자는 num1에, y에 해당하는 숫자는 num2에 저장합니다.

rand()함수를 사용할 때 time.h 파일과 stdlib.h 파일을 추가하고, 난수 초기화를 하는 것도 잊지 말아야 합니다.

문제가 화면에 보여야 사용자가 문제를 풀 수 있겠죠? x × y = ? 형식으로 문제를 출력하도록 printf()문을 작성합니다.

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