• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プログラミングの問題です。)

交通費を分配するための硬貨枚数を計算するプログラム

このQ&Aのポイント
  • プログラミングの問題です。以下のプログラムを作成してください。はじめに人数を入力させ、その後各人の交通費を入力すると、交通費を分配するために必要な硬貨の枚数を表示します。
  • 例えば、2人で530円と380円の場合は、五百円玉1枚、百円玉3枚、五十円玉1枚、十円玉6枚が必要となります。
  • 達成要件として、人数として0または負の数を入力された場合はエラーメッセージを表示し、0枚の硬貨は表示しないようにします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.7

C++で書いてみた。 多分、お望みのものにはならないだろうけど。 二千円札も、記念硬貨も、容易に対応可能。 #include <iostream> struct kinshuType { char *name; int value; }; static struct kinshuType kinshuList[] = { {"一万円", 10000}, {"五千円", 5000}, {"千円", 1000}, {"五百円", 500}, {"百円", 100}, {"五十円", 50}, {"十円", 10}, {"五円", 5}, {"一円", 1} }; const int numOfKinshu = sizeof kinshuList / sizeof kinshuList[0]; struct personKinshuType { int total; int maisu[numOfKinshu]; personKinshuType() { total = 0; for (int i = 0; i < numOfKinshu; maisu[i++] = 0); } void operator += (personKinshuType another) { total += another.total; for(int i = 0; i < numOfKinshu; i++) maisu[i] += another.maisu[i]; } void print() { std::cout << "総計" << total << "円\n\n"; for (int i = 0; i < numOfKinshu; i++) if (maisu[i]) std::cout << kinshuList[i].name << " " << maisu[i] << " 枚\n"; } void calc() // 金種計算・金種表はグローバルのものを使う { int wk = total; for(int i = 0; i < numOfKinshu; i++) { maisu[i] = wk / kinshuList[i].value; wk %= kinshuList[i].value; } } }; int main() { personKinshuType forPerson; personKinshuType total; int numOfPerson; std::cout << "人数を入力してください: "; std::cin >> numOfPerson; if (numOfPerson < 1) { std::cout << "正しい人数を入力してください\n"; return -1; } for(int i = 0; i < numOfPerson; i++) { std::cout << (i + 1) << "人目の交通費は? "; std::cin >> forPerson.total; forPerson.calc(); total += forPerson; } total.print(); return 0; }

すると、全ての回答が全文表示されます。

その他の回答 (6)

  • a_kwn
  • ベストアンサー率34% (8/23)
回答No.6

じゃ、このプログラムを実行すると、 壱万円記念硬貨玉 1枚 五千円記念硬貨玉 2枚 千円記念硬貨玉  3枚 五百円玉     4枚 百円玉      5枚 五十円玉     6枚 十円玉      7枚 五円玉      8枚 一円玉      9枚 と、表示されるんだ。 ちょっと楽しいな。

すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.5

確認したところ, 1000円・5000円・10000円のいずれも記念硬貨が存在します>#4. でも, やっぱり 2000円札は無視されるんだ....

すると、全ての回答が全文表示されます。
  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.4

>●正しい硬貨と枚数が表示される とありますが、 >一万円、五千円、千円 基本的にお札しかないんですけど。千円は記念硬貨か何かであったかもしれませんが…。

すると、全ての回答が全文表示されます。
  • BuriBuri4
  • ベストアンサー率28% (150/525)
回答No.3

金種表でググれ http://www.geocities.jp/kenji_y0328/crenshu/index.html のR044あたりを適当に修正すれば楽なんじゃね

すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

お金の種別が「一円」とか「十円」とかなのに, どうして「十円玉」などと表示できるのでしょうか?

すると、全ての回答が全文表示されます。
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

まぁ、お約束ですが… 『どこまで、自分でできますか?』 『わからないところはどこですか?』 丸投げだと望む回答を得られる可能性は高くなかったりしますが。

すると、全ての回答が全文表示されます。

関連するQ&A