ここから本文です

プログラミングの問題です。以下のプログラムを作成せよ はじめに人数を入力させ...

dar********さん

2011/6/423:21:30

プログラミングの問題です。以下のプログラムを作成せよ
はじめに人数を入力させる。

プログラミングの問題です。以下のプログラムを作成せよ
はじめに人数を入力させる。

次にその人数分、交通費を入力、すると交通費を分配するためにはお金の種別ごと(一万円、五千円、千円、五百円、百円、五十円、十円、五円、一円)に何枚用意する必要があるか表示してくれるプログラムを作成せよ。

例:二人で530円と380円の場合
はじめに「人数を入力してください:」と表示する。そこで「2」と入力する。
次に「1人目の交通費は?」と表示されるので「530」と入力、次に「2人目の交通費は?」と表示されるので「380」と入力したら
五百円玉 1 枚
百円玉 3 枚
五十円玉 1 枚
十円玉 6 枚
と表示し終了する。

達成要件:
●人数として0もしくは負の数を入力された場合は、「正しい人数を入力してください」と、表示し終了する
●枚数が0枚の場合は硬貨の種類は表示しない
●正しい硬貨と枚数が表示される

閲覧数:
174
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

ii3********さん

2011/6/500:22:32

#include <stdio.h>

int dist(int *money, int currency) {
int cnt = *money / currency;
*money %= currency;
return cnt;
}

int getMoney(int i) {
int money = 0;
printf("%d人目の交通費は?", i);
scanf("%d", &money);
return money;
}

int main(void) {
char* currencyStr[9] = {"一万円", "五千円", "千円", "五百円", "百円", "五十円", "十円", "五円", "一円"};
int currencyMoney[9] = {10000, 5000, 1000, 500, 100, 50, 10, 50, 1};
int cnt[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
int manMax, manCnt, i;

printf("人数を入力してください:");
scanf("%d", &manMax);

if (manMax > 0) {
for (manCnt = 1; manCnt <= manMax; manCnt++) {
int money = getMoney(manCnt);
for (i = 0; i < 9; i++) {
cnt[i] += dist(&money, currencyMoney[i]);
}
}

for (i = 0; i < 9; i++) {
if (cnt[i] > 0) {
printf("%s %d 枚\n", currencyStr[i], cnt[i]);
}
}

} else {
printf("正しい人数を入力してください");
}

return 0;
}

ベストアンサー以外の回答

1〜1件/1件中

cer********さん

2011/6/500:36:24

課題のようなので考えを書きます。 自分でコーディングしてください。

人数を変数nに入力して、if文で、正のチェック。 エラー時は、エラー表示を行い終了

forループで人数分ループします。
交通費の入力。 仮にjに入力
j/10000 が、1万円札の枚数 jに、j%10000を入れる (残り金額)
j/5000 が、1万円札の枚数 jに、j%5000を入れる (残り金額)
こうして、1円まで求められます。

札、コインの枚数用の変数は、初期値0で、宣言し、ループの中で加算していく
C10000=C10000+j/c;
j=j%10000;
C5000=C5000+j/5000;
j=j%5000;
って感じです。

ループ終了後、各札、コインの枚数を表示して正常終了

これは、割り算と余りの基礎的な演算練習です。
課題を丸投げするんじゃなく、わからないことだけ聞かないと、いつまでたってもコーディングできませんよ。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる