教えてください。
C言語を今年の5月から学び始めた学生です。
以下のプログラムを作成する宿題が出ましたがまったく分かりません。
レベルは最近やっと構文の意味が分かるようになった程度です。
これを今日の3時までに解けないと単位を貰えません。誰か助けて下さい。
自販機のプログラムを作成せよ。
自販機には予め千円札は0枚でそれ以外の金種には20枚のお釣りが補充してある。
これを
投入金 (1000) = ___?__投入する枚数
投入金 (500) = ___?__投入する枚数
投入金 (100) = ___?__投入する枚数
投入金 (50) = ___?__投入する枚数
投入金 (10) = ___?__投入する枚数
と聞かれ、投入金額を入力すると、
おつりの枚数と自販機のつり銭箱に何枚入ってるかを表示したい。
商品の金額は120円固定であり、本数も1本固定である。
よろしくお願いします。
自販機のプログラムについて質問です。
Re: 自販機のプログラムについて質問です。
別のスレッド http://dixq.net/forum/viewtopic.php?f=3&t=8594
を元に作ったらどうですか?同じ大学の課題なのかなぁ?
どっちにしても、3時まで(15時までかな)に提出は、泥縄ね。
を元に作ったらどうですか?同じ大学の課題なのかなぁ?
どっちにしても、3時まで(15時までかな)に提出は、泥縄ね。
non
Re: 自販機のプログラムについて質問です。
単位がかかっているこんな重要な問題を、きっと今さっき出されたんでしょう。お気の毒に‥。
それはいいとして、それ以外の金種には20枚のお釣りが、というのは各20枚ずつですか?それともそれぞれの枚数は不明で合計20枚ですか?
あとお釣りの枚数とつり銭箱に残っている枚数というのは全ての金種を表示するんですか?それとも金種は関係なく「お釣りは3枚です」とかでいいんですか?
それはいいとして、それ以外の金種には20枚のお釣りが、というのは各20枚ずつですか?それともそれぞれの枚数は不明で合計20枚ですか?
あとお釣りの枚数とつり銭箱に残っている枚数というのは全ての金種を表示するんですか?それとも金種は関係なく「お釣りは3枚です」とかでいいんですか?
Re: 自販機のプログラムについて質問です。
金庫のストックには1000円札が無く、そのほかは20枚づつストックが初めからあるという意味です。
説明不足ですみませんでした。
お釣りは各金種の枚数とストック枚数を二段で表示します。
説明不足ですみませんでした。
お釣りは各金種の枚数とストック枚数を二段で表示します。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 自販機のプログラムについて質問です。
こちらの内容に答えて頂けると幸いです。
「教えて頂きますか? • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=8594
同じ系列の課題だとしか思えないので、同じ方かどうかを確認させてください。
「教えて頂きますか? • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=8594
同じ系列の課題だとしか思えないので、同じ方かどうかを確認させてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 自販機のプログラムについて質問です。
いろいろと、投稿上のマナーがありそうですが、ちょっと暇だったので、作りました。
たぶん、期待されている解答ではないと思います。また、エラー処理について何も記述がなかったので
しておりません。ご了承ください。
たぶん、期待されている解答ではないと思います。また、エラー処理について何も記述がなかったので
しておりません。ご了承ください。
#include<stdio.h>
#define KINSYU 5
typedef struct{
int kinsyu;
int cnt;
}Money;
int tounyu(Money *mon)
{
int i,kin=0,mai;
for(i=0;i < KINSYU;i++){
printf("投入金(%d)=",mon->kinsyu);
scanf("%d",&mai);
kin+=mai*mon->kinsyu;
mon->cnt+=mai;
mon++;
}
return kin;
}
void turiout(Money *mon,int kin)
{
int i,turi;
for(i=0;i < KINSYU;i++){
turi=0;
while(mon->cnt > 0 && mon->kinsyu <= kin){
mon->cnt--;
turi++;
kin-=mon->kinsyu;
}
printf("おつり(%4d)=%2d 枚 残枚数=%2d枚\n",mon->kinsyu,turi,mon->cnt);
mon++;
}
}
int main(void)
{
Money money[]={{1000,0},{500,20},{100,20},{50,20},{10,20}};
int kin;
kin=tounyu(money);
printf("投入金額:%d円\n",kin);
kin-=120;
printf("おつり :%d円\n",kin);
turiout(money,kin);
return 0;
}
non
Re: 自販機のプログラムについて質問です。
本当にありがとうございます。
本当にずうずうしいのですが、これを前の金庫内の枚数を引き継いで入力可能にしたいのですがどうしたら宜しいでしょうか?
以下に自分で作ったプログラムを添付します。
これを元に出来れば修正していただけますか?
#include<stdio.h>
int main(void)
{
int kinsyu[5] = {1000,500,100,50,10}; /* 金種 */
int maisuu[5]; /* おつりの金種毎の枚数 */
int satu_1000=0,coin_500=0,coin_100,coin_50,coin_10;
int otsuri; /*おつり*/
int i;
int in_1000=0,in_500=10,in_100=10,in_50=10,in_10=10; /*予め金庫内に入ってる枚数*/
int box_1000,box_500,box_100,box_50,box_10; /*金庫内*/
while(1){
printf("投入金 (千円):");
scanf("%d",&satu_1000);
printf("投入金 (五百円):");
scanf("%d",&coin_500);
printf("投入金 (百円):");
scanf("%d",&coin_100);
printf("投入金 (五十円):");
scanf("%d",&coin_50);
printf("投入金 (十円):");
scanf("%d",&coin_10);
otsuri = ((satu_1000*1000)+(coin_500*500)+(coin_100*100)+(coin_50*50)+(coin_10*10)-120);
/*printf("おつり:%d\n",otsuri);*/
for(i=0;i<5;i++){
maisuu = otsuri / kinsyu;
otsuri = otsuri - (kinsyu * maisuu);
}
for(i=0;)
printf(" おつり: \千:%i \五百:%i \百:%i \五十:%i \十:%i\n", maisuu[0],maisuu[1],maisuu[2],maisuu[3],maisuu[4]);
printf("機内枚数: \千:%i \五百:%i \百:%i \五十:%i \十:%i\n", (in_1000+satu_1000),(in_500-maisuu[1]+in_500),
(in_100-maisuu[1]+coin_100),(in_50-maisuu[3]+coin_50),(in_10-maisuu[4]+coin_10));
}
}
本当にずうずうしいのですが、これを前の金庫内の枚数を引き継いで入力可能にしたいのですがどうしたら宜しいでしょうか?
以下に自分で作ったプログラムを添付します。
これを元に出来れば修正していただけますか?
#include<stdio.h>
int main(void)
{
int kinsyu[5] = {1000,500,100,50,10}; /* 金種 */
int maisuu[5]; /* おつりの金種毎の枚数 */
int satu_1000=0,coin_500=0,coin_100,coin_50,coin_10;
int otsuri; /*おつり*/
int i;
int in_1000=0,in_500=10,in_100=10,in_50=10,in_10=10; /*予め金庫内に入ってる枚数*/
int box_1000,box_500,box_100,box_50,box_10; /*金庫内*/
while(1){
printf("投入金 (千円):");
scanf("%d",&satu_1000);
printf("投入金 (五百円):");
scanf("%d",&coin_500);
printf("投入金 (百円):");
scanf("%d",&coin_100);
printf("投入金 (五十円):");
scanf("%d",&coin_50);
printf("投入金 (十円):");
scanf("%d",&coin_10);
otsuri = ((satu_1000*1000)+(coin_500*500)+(coin_100*100)+(coin_50*50)+(coin_10*10)-120);
/*printf("おつり:%d\n",otsuri);*/
for(i=0;i<5;i++){
maisuu = otsuri / kinsyu;
otsuri = otsuri - (kinsyu * maisuu);
}
for(i=0;)
printf(" おつり: \千:%i \五百:%i \百:%i \五十:%i \十:%i\n", maisuu[0],maisuu[1],maisuu[2],maisuu[3],maisuu[4]);
printf("機内枚数: \千:%i \五百:%i \百:%i \五十:%i \十:%i\n", (in_1000+satu_1000),(in_500-maisuu[1]+in_500),
(in_100-maisuu[1]+coin_100),(in_50-maisuu[3]+coin_50),(in_10-maisuu[4]+coin_10));
}
}
Re: 自販機のプログラムについて質問です。
ソースコードタグの使い方が分からずそのまま記載してしまいました。
誠に申し訳ありませんでした。ルールを改めて確認したいと思います。
誠に申し訳ありませんでした。ルールを改めて確認したいと思います。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 自販機のプログラムについて質問です。
メールを頂けないようですが捨てアドでも構いませんので頂けませんか?
あとルールのcodeタグにかんしても説明をお読みください。
あとルールのcodeタグにかんしても説明をお読みください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。