- ベストアンサー
C言語で実数の絶対値を求める
- 入力した実数の絶対値を求めるためのC言語のプログラムを紹介します。
- プログラムの条件分岐や変数の使い方について解説します。
- 実数の絶対値を求める際に注意すべき点やポイントを解説します。
- みんなの回答 (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に変換するよ、という形式です。
その他の回答 (1)
- asciiz
- ベストアンサー率70% (6803/9674)
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 の指定で浮動小数点数値を表示しますから、それが無ければいくら計算しても結果表示されないことになっちゃいます。
お礼
回答ありがとうございます。 ということは #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); } ということでしょうか?
お礼
無事出力もできて実行も確認しました。 つい数回前にc言語の授業に入ったばかりなので とてもためになります 回答ありがとうございました。