• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語で入力した実数の絶対値を求める)

C言語で実数の絶対値を求める

このQ&Aのポイント
  • 入力した実数の絶対値を求めるためのC言語のプログラムを紹介します。
  • プログラムの条件分岐や変数の使い方について解説します。
  • 実数の絶対値を求める際に注意すべき点やポイントを解説します。

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

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.2

>ということでしょうか? はい、それで正解かと思います。 まあ、すごく厳密に書くならば、 > if(x>=0) z=x → if(x>=0.0f) z=x あるいは → if(x>=(float)0) z=x と書いておいた方が良いかもしれません。 単純に 0 と書くと、それは int の 0 を表していますので、コンパイル時に「型の違う比較」というwarningが出るかもしれません。 0.0f は、浮動小数点数値の0だという明示形式、(float)0 は、intの0をfloatに変換するよ、という形式です。

N-kami
質問者

お礼

無事出力もできて実行も確認しました。 つい数回前にc言語の授業に入ったばかりなので とてもためになります 回答ありがとうございました。

その他の回答 (1)

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.1

A,B,C,D とは、空欄で、そこを埋めよっていう問題なんでしょうね? 答えそのものを書いてもいいんですが…。 日本語で書くと、こうです。 (1)まず、入力された数が、0以上かどうか調べる。 (2)0以上ならば、絶対値は、入力された数値そのものです。 (3)そうでなければ、絶対値は、入力された数値に マイナス1をかけ、符号反転したものです。 ※掛け算まで使わずに、単純に符号反転でいいんですが ただまあ、そのプログラムを見て、 ・x で入力値を受け取る ・z に計算結果を入れる という理解をしなければいけません。 その上で、(1)~(3)を考えれば、わかるかもしれません。 ---- 問題文にちょっと誤りがあるようなので訂正しときます >printf("Input Nonber\n"); →printf("Input Number\n"); # 単純なスペルミスなので本質的に影響ありません >printf("Answer=\n",z); →printf("Answer=%f\n",z); # %f の指定で浮動小数点数値を表示しますから、それが無ければいくら計算しても結果表示されないことになっちゃいます。

N-kami
質問者

お礼

回答ありがとうございます。 ということは #include <stdio.h> main(){ float x,z; printf("Input Number\n"); scanf("%f",&x);      if(x>=0) z=x else z=-x; printf("Answer=%f\n",z); } ということでしょうか?

関連するQ&A