自販機のプログラムについて質問です。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
C言語挫折しそうな学生

自販機のプログラムについて質問です。

#1

投稿記事 by C言語挫折しそうな学生 » 14年前

教えてください。
C言語を今年の5月から学び始めた学生です。
以下のプログラムを作成する宿題が出ましたがまったく分かりません。
レベルは最近やっと構文の意味が分かるようになった程度です。
これを今日の3時までに解けないと単位を貰えません。誰か助けて下さい。

自販機のプログラムを作成せよ。
自販機には予め千円札は0枚でそれ以外の金種には20枚のお釣りが補充してある。
これを
投入金 (1000) = ___?__投入する枚数
投入金 (500) = ___?__投入する枚数
投入金 (100) = ___?__投入する枚数
投入金 (50) = ___?__投入する枚数
投入金 (10) = ___?__投入する枚数
と聞かれ、投入金額を入力すると、
おつりの枚数と自販機のつり銭箱に何枚入ってるかを表示したい。
商品の金額は120円固定であり、本数も1本固定である。
よろしくお願いします。

non
記事: 1097
登録日時: 14年前

Re: 自販機のプログラムについて質問です。

#2

投稿記事 by non » 14年前

別のスレッド http://dixq.net/forum/viewtopic.php?f=3&t=8594
を元に作ったらどうですか?同じ大学の課題なのかなぁ?
どっちにしても、3時まで(15時までかな)に提出は、泥縄ね。
non

アバター
ゆーずぃ
記事: 62
登録日時: 14年前
住所: 埼玉県

Re: 自販機のプログラムについて質問です。

#3

投稿記事 by ゆーずぃ » 14年前

単位がかかっているこんな重要な問題を、きっと今さっき出されたんでしょう。お気の毒に‥。

それはいいとして、それ以外の金種には20枚のお釣りが、というのは各20枚ずつですか?それともそれぞれの枚数は不明で合計20枚ですか?
あとお釣りの枚数とつり銭箱に残っている枚数というのは全ての金種を表示するんですか?それとも金種は関係なく「お釣りは3枚です」とかでいいんですか?

C言語挫折しそうな学生

Re: 自販機のプログラムについて質問です。

#4

投稿記事 by C言語挫折しそうな学生 » 14年前

金庫のストックには1000円札が無く、そのほかは20枚づつストックが初めからあるという意味です。
説明不足ですみませんでした。
お釣りは各金種の枚数とストック枚数を二段で表示します。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 自販機のプログラムについて質問です。

#5

投稿記事 by softya(ソフト屋) » 14年前

こちらの内容に答えて頂けると幸いです。

「教えて頂きますか? • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=8594
同じ系列の課題だとしか思えないので、同じ方かどうかを確認させてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

non
記事: 1097
登録日時: 14年前

Re: 自販機のプログラムについて質問です。

#6

投稿記事 by non » 14年前

いろいろと、投稿上のマナーがありそうですが、ちょっと暇だったので、作りました。
たぶん、期待されている解答ではないと思います。また、エラー処理について何も記述がなかったので
しておりません。ご了承ください。

コード:

#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

C言語入門者

Re: 自販機のプログラムについて質問です。

#7

投稿記事 by C言語入門者 » 14年前

本当にありがとうございます。
本当にずうずうしいのですが、これを前の金庫内の枚数を引き継いで入力可能にしたいのですがどうしたら宜しいでしょうか?
以下に自分で作ったプログラムを添付します。
これを元に出来れば修正していただけますか?
#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));
}
}

C言語入門者

Re: 自販機のプログラムについて質問です。

#8

投稿記事 by C言語入門者 » 14年前

ソースコードタグの使い方が分からずそのまま記載してしまいました。
誠に申し訳ありませんでした。ルールを改めて確認したいと思います。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 自販機のプログラムについて質問です。

#9

投稿記事 by softya(ソフト屋) » 14年前

メールを頂けないようですが捨てアドでも構いませんので頂けませんか?
あとルールのcodeタグにかんしても説明をお読みください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

C言語入門者

Re: 自販機のプログラムについて質問です。

#10

投稿記事 by C言語入門者 » 14年前

皆さん、どうもありがとうございます。
とても参考になりました。

閉鎖

“C言語何でも質問掲示板” へ戻る