電子書籍の厳選無料作品が豊富!

現在C言語を勉強し始めたばかりなので
協力お願いします。


今回書きたいのは題名にある通り
実数の絶対値を求めるプログラミングです。

ソースは以下の通りです。


#include <stdio.h>
main(){
float x,z;
printf("Input Nonber\n");
scanf("%f",&x);
   
 if( A >= B ) z=C
else z=D;

printf("Answer=\n",z);

}


この中で条件付するときの
A,B,C,Dをどうすればいいか分からないので
教えてください。

また書いているもので間違えなどがあれば
ご指摘していただけたら嬉しいです。

A 回答 (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に変換するよ、という形式です。
    • good
    • 0
この回答へのお礼

無事出力もできて実行も確認しました。

つい数回前にc言語の授業に入ったばかりなので
とてもためになります



回答ありがとうございました。

お礼日時:2012/11/21 22:08

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 の指定で浮動小数点数値を表示しますから、それが無ければいくら計算しても結果表示されないことになっちゃいます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ということは


#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);

}


ということでしょうか?

お礼日時:2012/11/21 21:02

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