본문 바로가기

Code.D IT 프로젝트/C언어

[C언어 문제] 동전 교환기

C언어 문제

동전 교환기

사용자가 입력한 액수만큼 500 원, 100 원, 50 원, 10 원, 1 원 짜리 동전으로 교환해주는 프로그램을 만들어 주세요.


단, 제한 사항이 있습니다.

고액의 동전을 먼저 바꿔주어서 동전의 총 개수를 최소화하도록 프로그래밍 해주세요.


출력 결과는 다음과 같이 나타내시기 바랍니다.

오백 원 짜리 동전: ?? 개

백 원 짜리 동전:    ?? 개

오십 원 짜리 동전: ?? 개

십 원 짜리 동전:    ?? 개

일 원 짜리 동전:   ?? 개



#include <stdio.h>

int main(void){

     //최초 금액 저장 및 남은 돈 저장을 위해 변수 선언
     int coin;

     //500 원, 100 원, 50 원, 10 원짜리 동전의 개수를 저장할 변수 선언
     int c500, c100, c50, c10;

     printf("교환할 금액을 입력해주세요 >> ");
     fflush(stdout);
     scanf("%d", &coin);

     printf("동전 교환중...\n");

     c500 = coin/500; //500 원 짜리 동전 개수
     coin = coin%500; //500 원으로 나눈 후 나머지 금액

     c100 = coin/100; //100 원 짜리 동전 개수
     coin %= 100;     //100 원으로 나눈 후 나머지 금액

     c50 = coin/50;    //50 원 짜리 동전 개수
     coin %= 50;       //50 원으로 나눈 후 나머지 금액

     c10 = coin/10;    //10 원 짜리 동전 개수
     coin %= 10;   //10 원으로 나눈 후 나머지 금액 = 1 원 짜리 동전 개수

     printf("오백 원 짜리 동전  : %d개\n", c500);
     printf("백 원 짜리 동전   : %d개\n", c100);
     printf("오십 원 짜리 동전   : %d개\n", c50);
     printf("십 원 짜리 동전   : %d개\n", c10);
     printf("일 원 짜리 동전   : %d개\n", coin);

     return 0;

}



다음은 출력 결과입니다.






사용자가 동전을 교환할 금액을 입력하면, 

입력받은 금액에 500으로 나눈 몫(500 원 짜리 동전 개수)을 c500에 저장합니다.

500으로 나눈 나머지 금액에 100으로 나눈 몫(100 원 짜리 동전 개수)을 c100에 저장합니다.

100으로 나눈 나머지 금액에 50으로 나눈 몫(50 원 짜리 동전 개수)을 c50에 저장합니다.

50으로 나눈 나머지 금액에 10으로 나눈 몫(10 원 짜리 동전 개수)을 c10에 저장합니다.

10으로 나눈 나머지 금액(1원 짜리 동전 개수)에 coin에 저장합니다.

최종적으로 출력하면 입력받은 금액을 각 동전의 개수로 환산한 결과 값을 확인할 수 있습니다.