プロが教えるわが家の防犯対策術!

C言語についての質問です。
私が超初心者だと思って答えていただけると嬉しいです。

入力した正の実数を出力すると(例えば1)
1.000000と表示されます。
これを1.00と表示したい場合は
どうすればいいでしょうか。

ちなみに、%.2lf、のようなコードは
使用してはだめとの条件つきです。

わかる方お願いします。

A 回答 (6件)

……えーと、すみません。


> ちなみに、%.2lf、のようなコードは
> 使用してはだめとの条件つきです。
なぜ、そのような条件がついているのでしょうか?
それが一番楽で他の人(数か月後の自分を含む)に意図が伝わる方法なのですが……。
    • good
    • 3

その前に、今どうやって 「1.000000と表示」しているのでしょう?


そのプログラムを変更してできませんか?
    • good
    • 1

「超初心者」は, 素直に %.2f を使ってください.

    • good
    • 3

私も、No3さんと同様、「超初心者」は, 素直に %.2f を使ってください.」が、回答になりますが、どうしてもというならば、



if( x == 1.000000 ) puts("1,00");

のように、個別に表示させればできますけど・・
    • good
    • 0

入力された実数の小数点以下第2位まで出力したいってことですよね。



プログラムは自分で考えてほしいのですが、

・入力をint型でキャストする(整数部)
・入力から「整数部」を引く(中間)
・「中間」を100倍してint型にキャストする(小数部)
・「整数部」.「小数部」を出力する

ってことじゃないんですか?
これが学校の課題で、習っている内容が「型」とか「キャスト」とかであればきっと正解だと思います。

四捨五入が必要でしたら「小数部」を求めるあたりを適当にアレンジすればできると思います。
    • good
    • 0
この回答へのお礼

教授によるとキャストして欲しかったようです。ありがとうございました!

お礼日時:2018/04/28 15:50

入力された値が int の範囲に入っていないときはどうしましょうか>#5.



ああ, 「%.2lf、のようなコードは使用してはだめ」の「のような」はなにからなにまでを含むんでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!