ページ 11

おつりを出すプログラムの計算

Posted: 2016年1月03日(日) 03:07
by メル
買い物をしてお金を支払ったときおつりの最小の枚数を表示させるときのプログラムを作るとき計算は何をすればできますか?

Re: おつりを出すプログラムの計算

Posted: 2016年1月03日(日) 04:53
by トントン
メル さんが書きました:買い物をしてお金を支払ったときおつりの最小の枚数を表示させるときのプログラムを作るとき計算は何をすればできますか?
それは、現実世界の日本のお金の話ですか? それとも日本のお金でも仮想(現実ではありえないお金等)のお金ですか?
現実世界のお金でもコインのみですか?札のみですか?

もう少し具体的に書くと良いかもしれません。

さて、現実世界の日本のお金のお話だとします。

メルさんの目の前にお金があるとします。
目の前にあるお金を最小の枚数のお金に分けるときどのように考えますか?

それをそのままプログラムに起こせば良いと思います。

Re: おつりを出すプログラムの計算

Posted: 2016年1月03日(日) 09:48
by みけCAT
メル さんが書きました:買い物をしてお金を支払ったときおつりの最小の枚数を表示させるときのプログラムを作るとき計算は何をすればできますか?
具体的な仕様を決め、プログラムを書き、適当な入力を与えて実行すればできるでしょう。

というわけで、まずは具体的な仕様を決めましょう。
例えば、入力は何ですか?
  • 手元にあるお金の枚数と支払う金額
  • お釣りの金額
などの候補が考えられます。

Re: おつりを出すプログラムの計算

Posted: 2016年1月03日(日) 11:23
by amehirune
言語が指定されていませんのでCで書いてみました。
但し、わざと汚く書いたつもりです。
尚、動作確認はしておりません。バグがあれば自分で修正してください。

簡単なコメントやプログラムでしか書いていないので、
解説なんぞ要りませんよね。

コード:

void coin(){

	int num[10] = {0};	// 最大10枚まで登録できるよ!
	int charge;			// お釣り

	scanf( "%d",&charge );	// お釣りはいくら?

	num[0] = charge/50;					// 50ドルは何枚?
	charge = charge - 50*num[0];		// 払った分だけひきましてー
	num[1] = charge/25;					// 25ドルは何枚?
	charge = charge - 25*num[1];		// 払った分だけひきましてー
	num[2] = charge;					// あと1ドル硬貨しかないんですがそれは

	printf( "$50->%d,$25->%d,$1->%d\n",num[0],num[1],num[2] );

}