ID非公開

2015/2/27 23:19

22回答

C言語で、ATMで引き出すお金の、貨幣(紙幣及び硬貨)の枚数を数えるプログラムを教えてください。

C言語関連718閲覧

ベストアンサー

0

その他の回答(1件)

0

>int currency[ ]={10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1}; //紙幣の額面 私1円紙幣なんて見たことない ・・・冗談はさておき int number[10]; //必要最小枚数 は何に使うんですかねぇ・・・。 以下、 http://codegarage.edisonthk.com/snippets/39 のget_integer_num関数がある前提で。 //前略 #define numof(array) ( sizeof( array ) / sizeof( array[ 0 ] ) ) #define BORDER_BILL_OR_COIN 1000 #define echo_bill_or_coin(num) (num > BORDER_BILL_OR_COIN)? "円玉" : "円札" //中略 int main(void){ puts("預金口座から引き出す金額を入力して下さい:"); const int in_num = get_integer_num(INT_MAX, 0); if(-1 == in_num) return -1 int* numof_bill_or_coin = (int*)calloc(numof(currency), sizeof(int)); int temp = in_num; unsigned int i; for(i = 0; i < numof(currency); i++){ numof_bill_or_coin[i] = temp / currency[i]; temp %= currency[i]; } puts("13548円を引き出します"); for(i = 0; i < numof(currency); i++){ printf("%d%s:%d枚\n", currency[i], echo_bill_or_coin(currency[i]), numof_bill_or_coin[i]); } return 0; }