• ベストアンサー

C言語で

C言語の授業で課題がでたのですがわかりません。どなたかおしえていただけないでしょうか? [問題] ある商品の原価に消費税5%を加えた金額を計算するとき、 1.切り捨て 2.切り上げ 3.四捨五入 の3つの方法がある。商品の原価をfloat型の数としてscanf()で入力し、それぞれの方法で売価を計算するプログラムを作成せよ という問題です。 原価×1.05 を計算するところまではわかるのですが、どの方法でもその先から進みません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

それぞれに専用の関数があります(とりあえず負数は考慮しない)。 1.切り捨て - floorf関数 2.切り上げ - ceilf関数 3.四捨五入 - roundf関数 古い処理系では上記の関数がサポートされない場合があるのでご注意ください。

その他の回答 (4)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.5

> こんな感じの関数作れば・・・と思いますが・・・ floatは%演算子を使えませんが、fmodf関数を使えば剰余を求められます。 でも、小数点以下を求めるだけならmodff関数の方が便利です。

  • pipipi523
  • ベストアンサー率40% (148/365)
回答No.4

ANo.3 ぐは、すみませんfloat型なんて滅多に使わないもので(汗 %がダメなら float Surplus(float data1,float data2){   while(data2>data1){     data1-=data2;   } return data1; } こんな感じの関数作れば・・・と思いますが・・・ やっぱり大間違い??

回答No.3

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)
回答No.2

・・・関数を使わないならこんな感じ? 切り捨て:原価×1.05-(原価×1.05)%1 切り上げ:(原価×1.05+0.9)-(原価×1.05+0.9)%1 四捨五入:(原価×1.05+0.5)-(原価×1.05+0.5)%1

関連するQ&A