모두CBT

23-2다음은 금액 m을 5000원권·1000원권·100원 동전·10원… | 2023년 정보처리기사실기 2회차 기출문제 상세 페이지

4

23-2

다음은 금액 m을 5000원권·1000원권·100원 동전·10원 동전으로 거슬러 줄 때 각각의 개수를 구하는 C 프로그램이다. a~d는 차례로 5000원·1000원·100원·10원의 개수이다. 아래 실행 결과가 나오도록 빈칸 ①~④에 들어갈 식을 [보기]의 문자·숫자·기호로 작성하시오.

[보기] m / % ( ) 0~9

#include <stdio.h>

int main(void) {
    int m = 8760;
    int a, b, c, d;
    a = ___①___;
    b = ___②___;
    c = ___③___;
    d = ___④___;
    printf("5000원 %d장\n", a);
    printf("1000원 %d장\n", b);
    printf("100원 %d개\n", c);
    printf("10원 %d개\n", d);
    return 0;
}

[실행 결과]

5000원 1장
1000원 3장
100원 7개
10원 6개
해설

① m/5000

② m%5000/1000

③ m%1000/100

④ m%100/10


[해설]

큰 단위부터 몫으로 개수를 구하고, 나머지(%)로 이미 거슬러 준 몫을 떼어 낸 뒤 다음 단위로 나눈다.

  • ① 8760/5000 = 1
  • ② 8760%5000 = 3760 → 3760/1000 = 3
  • ③ 8760%1000 = 760 → 760/100 = 7
  • ④ 8760%100 = 60 → 60/10 = 6

%와 /는 우선순위가 같아 왼쪽부터 계산되므로 괄호를 넣은 (m%5000)/1000도 같은 값이다. m/1000%5, m/100%10, m/10%10처럼 몫을 먼저 구하고 나머지를 취하는 식도 결과가 같아 정답으로 인정된다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.