プログラミング初心者向けの練習問題の一つとして、任意の金額に対する支払いに必要なお札、硬貨の組み合わせを求めるプログラムの作成があります。
本記事では、前述のプログラムの作成方法について解説しています。
実際にプログラムを作成してみる
それでは、入力された金額に対する支払いに必要なお札、硬貨の組み合わせを求めるプログラムを作成してみます。
プログラム作成の手順
プログラム作成の手順は以下の通りです。
- ユーザに任意の金額を入力させ、その値をint型の変数amountに格納
- 以下の流れを全部のお札、硬貨に対して行う
-> amountの値を特定のお札、又は硬貨の値で割り、その商を表示
-> amountの値を「amount÷お札、又は硬貨の値」の余りで更新
実装例
上記の手順に従ってプログラムを作成します。使用する言語はC言語です。
#include <stdio.h>
int main(void){
int money[10] = {10000, 5000, 1000, 500, 100, 50, 10, 5, 1};
int amount;
printf("任意の金額を入力して下さい:");
scanf("%d", &amount);
for (int i=0; money[i]!='\0'; i++) {
int result = amount / money[i];
if (result!=0) {
if (money[i]>=1000) {
printf("->%5d円札は%d枚\n", money[i], result);
} else {
printf("->%5d円玉は%d枚\n", money[i], result);
}
}
amount = amount % money[i];
}
return 0;
}
このプログラムを実行すると以下の出力結果が得られます。
任意の金額を入力して下さい:50505 ->10000円札は5枚 -> 500円玉は1枚 -> 5円玉は1枚
任意の金額を入力して下さい:16666 ->10000円札は1枚 -> 5000円札は1枚 -> 1000円札は1枚 -> 500円玉は1枚 -> 100円玉は1枚 -> 50円玉は1枚 -> 10円玉は1枚 -> 5円玉は1枚 -> 1円玉は1枚
おすすめの記事
本記事を読まれた方には、以下の記事もおすすめします。
【中・上級者への道!】C言語の次に勉強するべきプログラミング言語は何?【オススメは○○】