馬鹿な質問かもしれませんが、C言語で|a+b|<=cを入力してコンパイルし、
実行しようとしてもエラーが出て実行できません。C言語では絶対値のプログラム
は存在しないのでしょうか?もし存在するなら教えてください。

A 回答 (6件)

質問の内容とは関係ないのですが、


もうすこしタイトルのつけ方に気をつけたほうがいいと思います。

今回の質問ならば「絶対値を使用できません」など
質問の内容がわかりやすいものがいいと思います。
初心者というのは本文の最後にでもちょこっと書いておけばいいことですから。

偉そうなこと言ってすいません。
    • good
    • 0
この回答へのお礼

偉そうなことだなんてとんでもないです。以後気を付けます。

お礼日時:2001/05/23 11:38

もう回答の必要はないと思いますが、老婆心ながら。

。。

 NINJA104さんのおっしゃるように、絶対値程度のものなら、マクロを使った方が関数を使うよりも高速で手軽です。
 ただ、
  ABS(a++);
などとしてしまうと、マクロの副作用で結果が不明(処理系によって結果が異なる)なので注意が必要です。

 C++などならインライン関数があるので、こんな問題ないのですが。
    • good
    • 0
この回答へのお礼

アドバイスどうもありがとうございました。以後参考にさせて頂きます。
今後ともよろしくお願いします。

お礼日時:2001/05/23 11:34

絶対値を求める関数 ~abs系 を使用し、先述の方々の様に用いるのが正攻法?ですが、いちいち変数の型を気にしなければならないので、私の場合は以下の様なマクロ関数を定義して使っています。



#define ABS(c) (((c)<0)?-(c):(c))

参考まで。
    • good
    • 0
この回答へのお礼

アドバイスどうもありがとうございました。以後参考にさせて頂きます。
今後ともよろしくお願いします。

お礼日時:2001/05/23 11:31

a+bの型によって、関数を使い分ける必要があります。



実数なら
double fabs(double x);  math.h

整数なら
long labs(long n);  stdlib.h
int   abs(int n);   stdlib.h
    • good
    • 0
この回答へのお礼

アドバイスどうもありがとうございました。以後参考にさせて頂きます。
今後ともよろしくお願いします。

お礼日時:2001/05/23 11:27

abs()は整数型なので、もし、a,b,cが実数値なら、



fabs()

を使ってください。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。以後参考にさせて頂きます。
今後ともよろしくお願いします。

お礼日時:2001/05/23 11:24

abs(a+b)で絶対値が取れます。

    • good
    • 0
この回答へのお礼

回答ありがとうございました。おかげさまで無事解決しました。
今後ともよろしくお願いします。

お礼日時:2001/05/23 11:20

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

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ