URLのが宿題です。
大学の宿題なのですが、水道料金の使用料金について
一応プログラムを作成しました。
添付ファイルです。しかし
if文の使い方がいまいち分からなく、うまく起動しているか分かりません。
大学ではC言語について変数やifや演算式を習いました。
よろしくお願いします。
質問です
Re:質問です
#include <stdio.h> int main(void) { int x,a,b,ryokin1,ryokin2,ryokin; //xが使用量 ryoukin が最終的な料金// double y,z; while( 1 ) { printf("使用量は?"); scanf("%d",&x); y = x / 2 + 0.5 ; //使用量の分割// z = x / 2 - 0.5 ; if(y<=9 , z<=9){ //使用料が9以下のとき// a=0; b=0; } else if( ( 9<=y && y<=15 ) , ( 9<=z && z <=15) ) { //使用料が9以上15以下のとき// a = (15 - (int)y) * 75; b = (15 - (int)z) * 75; } else if( (16<=y && y<=20 ) , (16<=z && z<=20 ) ) { //使用料が16以上20以下のとき// a = 525 + ((int)y - 15) ; b = 525 + ((int)z - 15) ; } else if( ( 21<=y && y<=30) , ( 21<=z && z<=30 ) ) { //使用料が21以上30以下のとき// a = 525 + 400 + ((int)y - 20) ; b = 525 + 400 + ((int)z - 20) ; } else if( ( 31<=y && y<=50 ) , ( 31<=z && z<=50) ) { //使用料が31以上50以下のとき// a = 525 + 400 + 900 + ( (int)y - 30); b = 525 + 400 + 900 + ( (int)z - 30); } else if( ( 51<=y && y<=100 ) , ( 51<=z && z<=100 ) ) { //使用料が51以上100以下のとき// a = 525 + 400 + 900 + 2000 + ( (int)y - 50 ); b = 525 + 400 + 900 + 2000 + ( (int)z - 50 ); } else if( ( 101<=y && y<=300 ) , ( 101<=z && z<=300 ) ) { //使用料が101以上300以下のとき// a = 9825 + ( (int)y - 100); b = 9825 + ( (int)z - 100); } else if( ( 301<=y && y<=1000 ) , ( 301<=z && z<=1000 ) ) { //使用料が301以上1000以下のとき// a = 35825 + ( (int)y - 300); b = 35825 + ( (int)z - 300); } else if( y>=1000 , z>=1000 ) { //使用料が1001以上// a = 144325 + ( (int)y - 1000); b = 144325 + ( (int)z - 1000); } ryokin1 = 500 + a; //料金半分1// ryokin2 = 500 + b; //料金半分2// ryokin1 = (int)(ryokin1*1.05); //消費税計算// ryokin2 = (int)(ryokin2*1.05); //消費税計算// ryokin = ryokin1 + ryokin2; printf("水道料金は%d円です。\n",ryokin); } return 0; }
Re:質問です
使用量が、整数値に限るとは題意にないのですが、例からすれば、整数として考えろと言うことなのでしょうか?
さて、分割の式ですが、
int y,z; にして
y = x / 2.0 + 0.5 ;
z = x / 2 ;
ですね。
こういうのもありですか。
y = x / 2;
z = y + (x % 2);
さて、ifについては、少し、教科書を読んで、条件演算子を勉強した方がいいですね。
また、yとzの計算を一度にやってしまおうというのに、無理があります。
同じ事を、2回やるのだから、関数を習ったなら、使った方がいいし、習ってないなら、
同じ事を2回やるようにすべきでしょう。
さて、分割の式ですが、
int y,z; にして
y = x / 2.0 + 0.5 ;
z = x / 2 ;
ですね。
こういうのもありですか。
y = x / 2;
z = y + (x % 2);
さて、ifについては、少し、教科書を読んで、条件演算子を勉強した方がいいですね。
また、yとzの計算を一度にやってしまおうというのに、無理があります。
同じ事を、2回やるのだから、関数を習ったなら、使った方がいいし、習ってないなら、
同じ事を2回やるようにすべきでしょう。