본문 바로가기

C

[C언어] 실습: 출장비를 입력받은 후, 화폐 매수(오만 원, 만 원, 오천 원, 천 원, 오백 원, 오십 원, 십 원) 계산하여 출력하기 - 2

반응형

출장비를 입력받은 후, 화폐 매수(오만 원, 만 원, 오천 원, 천 원, 오백 원, 오십 원, 십 원) 계산하여 출력하기 - 2


입력형식 출력형식
 출장비:  50,000원:
 10,000원:
 5,000원:
 1,000원:
 500원:
 100원:
 50원:
 10원:

 

#include<stdio.h>

int main(){

   int money = 0;
   int rest = 50000;

   printf("출장비 : ");
   scanf("%d", &money);

   printf("50000원 : %d\n", money / rest);   // money에서 rest(50000)을 나누어준다. int라서 소숫점은 버림된다.
   
   money = money - (money / rest * rest);   // (money / rest * rest)는 int끼리의 계산이라 결과가 int로 나온다.
                                            // 순차적으로 계산하기 때문에 money / rest 은 50000원 권의 매수가 나오고,
                                            // 다시 rest를 곱해주어 (매수 * 50000) 값을 구해준다.
                                            // 그리고 구한 값을 총액에서 빼준다.
   rest = rest / 5;   // 50000원 매수를 구했기 때문에, 그 다음으로 큰 10000원 매수를 구해주어야 한다.
   printf("10000원 : %d\n", money / rest);

   money -= (money / rest * rest);
   rest = rest / 2;   // 10000원 매수 다음, 5000원 매수를 구해주어야 한다.
   printf("5000원 : %d\n", money / rest);

   money -= (money / rest * rest);
   rest /= 5;
   printf("1000원 : %d\n", money / rest);

   money -= (money / rest * rest);
   rest /= 2;
   printf("500원 : %d\n", money / rest);

   money -= (money / rest * rest);
   rest /= 5;
   printf("100원 : %d\n", money / rest);

   money -= (money / rest * rest);
   rest /= 2;
   printf("50원 : %d\n", money / rest);

   money -= (money / rest * rest);
   rest /= 5;
   printf("10원 : %d\n", money / rest);

   return 0;    
}

 

반응형