掲示板のルールを理解してなくて申し訳ありませんでした。
以下の処理に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 );
}
}
教えて頂きますか?
Re: 教えて頂きますか?
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){
// 五百円玉の枚数を求める //
:
}
になりますね。
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: 教えて頂きますか?
こちらの質問の続きですね。
「すみません。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
私はこちらの掲示板の副管理人をしておりまして、お伝えしたいことがあるので
までメールを頂けますか?(すいません。アドレスを手で打ち込んでください)。
「すみません。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: 教えて頂きますか?
それとokwaveでの質問もされていますでしょうか?
「C言語を使用したプログラミング方法で質問です。 | OKWave」
http://okwave.jp/qa/q6779148.html
こちらもフォーラムルールのルール違反となりますので相互リンクをお願いします。
「C言語を使用したプログラミング方法で質問です。 | OKWave」
http://okwave.jp/qa/q6779148.html
こちらもフォーラムルールのルール違反となりますので相互リンクをお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 教えて頂きますか?
他にもお伝えしたいことがありますのでメールをお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。