- ベストアンサー
C言語で
C言語の授業で課題がでたのですがわかりません。どなたかおしえていただけないでしょうか? [問題] ある商品の原価に消費税5%を加えた金額を計算するとき、 1.切り捨て 2.切り上げ 3.四捨五入 の3つの方法がある。商品の原価をfloat型の数としてscanf()で入力し、それぞれの方法で売価を計算するプログラムを作成せよ という問題です。 原価×1.05 を計算するところまではわかるのですが、どの方法でもその先から進みません。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
それぞれに専用の関数があります(とりあえず負数は考慮しない)。 1.切り捨て - floorf関数 2.切り上げ - ceilf関数 3.四捨五入 - roundf関数 古い処理系では上記の関数がサポートされない場合があるのでご注意ください。
その他の回答 (4)
- jacta
- ベストアンサー率26% (845/3158)
> こんな感じの関数作れば・・・と思いますが・・・ floatは%演算子を使えませんが、fmodf関数を使えば剰余を求められます。 でも、小数点以下を求めるだけならmodff関数の方が便利です。
- pipipi523
- ベストアンサー率40% (148/365)
ANo.3 ぐは、すみませんfloat型なんて滅多に使わないもので(汗 %がダメなら float Surplus(float data1,float data2){ while(data2>data1){ data1-=data2; } return data1; } こんな感じの関数作れば・・・と思いますが・・・ やっぱり大間違い??
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
ANo.2: > 切り捨て:原価×1.05-(原価×1.05)%1 > 切り上げ:(原価×1.05+0.9)-(原価×1.05+0.9)%1 > 四捨五入:(原価×1.05+0.5)-(原価×1.05+0.5)%1 大間違い。floatに剰余(%)は適用できない。
- pipipi523
- ベストアンサー率40% (148/365)
・・・関数を使わないならこんな感じ? 切り捨て:原価×1.05-(原価×1.05)%1 切り上げ:(原価×1.05+0.9)-(原価×1.05+0.9)%1 四捨五入:(原価×1.05+0.5)-(原価×1.05+0.5)%1