教えて頂きますか?

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

教えて頂きますか?

#1

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

掲示板のルールを理解してなくて申し訳ありませんでした。
以下の処理に500円玉=1or0,50円玉=1or0の質問時に1の時はおつり有り、0の時はお釣り無したいのですが、処理のイメージができません。レベルはC言語入門者です。どのような処理が宜しいでしょうか?教えて頂きますでしょうか?前回の質問の時のプログラムは自分で出来ました。以下が参考プログラムです。
#include <stdio.h>
int main(void)
{
int i;
int buy;
int turi, maisu;
int coin_500;
int coin_50;

printf("購入金 = ");
scanf("%d",&i);
buy=i*1.05;
printf("支払額 = %.d\n",buy);
turi = (100000-buy);
printf("おつり = %.d\n",turi);

printf("五百円玉 = ");
scanf("%d",&coin_500); //1の時は500円玉を使用したお釣り、0のときは使用しない。
printf("五十円玉 = ");
scanf("%d",&coin_50); //1の時は50円玉を使用したお釣り、0のときは使用しない。

// 一万円札の枚数を求める //
maisu = turi / 10000; //おつりの金額に10000円で割った値
printf( "一万円 = %d\n",maisu );

// 千円札の枚数を求める //
turi = turi % 10000; //おつりの金額を10000円で割った余りの値
maisu = turi / 1000; //余りの値を1000で割った数
printf( " 千円 = %d\n",maisu );


// 五百円玉の枚数を求める //
turi = turi % 1000;
maisu = turi / 500;
printf( "五百円 = %d\n",maisu );

// 百円玉の枚数を求める //
turi = turi % 500;
maisu = turi / 100;
printf( " 百円 = %d\n",maisu );

// 五十円玉の枚数を求める //
turi = turi % 100;
maisu = turi / 50;
printf( "五十円 = %d\n",maisu );

// 十円玉の枚数を求める //
turi = turi % 50;
maisu = turi / 10;
printf( " 十円 = %d\n",maisu );

// 一円玉の枚数を求める //
maisu = turi % 10;
printf( " 一円 = %d\n",maisu );
}

}

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

Re: 教えて頂きますか?

#2

投稿記事 by non » 14年前

printf("購入金 = ");
scanf("%d",&i);

変数名には、ある程度意味がわかる名前をつけましょう。可読性が増します。
iはカウンタ変数としてよく使います。

buy=i*1.05;
右辺は1.05を掛けているので、double型です。それをintに代入するときは、自動的にコンパイラがintに変換してくれますが、
明示的にintにキャストしましょう。

printf("支払額 = %.d\n",buy);
%.dは%dです。ピリオドは不要です。

500円玉=1or0,50円玉=1or0の質問時に1の時はおつり有り、0の時はお釣り無したいのですが、処理のイメージができません。
処理のイメージと言うことですが、普通に考えるとおりのイメージを持てばいいですね。
たいていの人は、
500円玉があるなら、500円玉で払おうと考えます。
言い換えるなら
もし、500円があるなら、500円で払う処理を行い、ないなら、500円で払う処理は飛ばそう。
これをプログラムに直せば
if (coin_500==1){
// 五百円玉の枚数を求める //
     :
}
になりますね。
non

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

Re: 教えて頂きますか?

#3

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

こちらの質問の続きですね。

「すみません。C言語入門者です。 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=8588

毎回新しいトピックを立てられるのも回答者が流れを追いきれなくなりますので避けて頂けると幸いです。
それとcodeタグをご利用ください。

それと、こちらの質問も同じ方、あるいは同じ学校の方でしょうか?
「自販機のプログラムについて質問です。 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=8595

私はこちらの掲示板の副管理人をしておりまして、お伝えしたいことがあるので画像までメールを頂けますか?(すいません。アドレスを手で打ち込んでください)。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

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

Re: 教えて頂きますか?

#4

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

それとokwaveでの質問もされていますでしょうか?
「C言語を使用したプログラミング方法で質問です。 | OKWave」
http://okwave.jp/qa/q6779148.html

こちらもフォーラムルールのルール違反となりますので相互リンクをお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

C言語入門者

Re: 教えて頂きますか?

#5

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

すみません。
同一人物です。
この掲示板の方々がとても親切で素早い回答をくれるので乱用してしまいました。
誠に申し訳ありません。

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

Re: 教えて頂きますか?

#6

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

他にもお伝えしたいことがありますのでメールをお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

C言語入門者

Re: 教えて頂きますか?

#7

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

ありがとうございます。
イメージが湧かなかったのですが、とても参考になりました。

閉鎖

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