質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

3652閲覧

ライブラリ関数absを使わずに絶対値を算出する方法を教えて下さい

kazu-.

総合スコア34

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

1グッド

0クリップ

投稿2018/12/27 13:00

ライブラリ関数を使ったやり方でやってきたのですが、使わないやり方どうやるんだろうかと疑問に思ってました。サンプルプログラムでいいので考え方など教えて下さい。

bochan2👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

c

1return (x < 0) ? -x : x;

として関数をつくれば良いです。

#define abs(x) ((x)<0 ? -(x) : (x))

としてもよいですが、 abs(x++) みたいにして呼び出したりすると変になるので注意が必要です。

参考情報

  • C Macro Question -(x) vs (-x)

https://stackoverflow.com/questions/2025372

https://github.com/gcc-mirror/gccには gcc のソースがあります。
ライブラリー関数の実装コードを探すことが可能です。

投稿2018/12/27 23:46

編集2018/12/27 23:48
katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

値が0より小さいか判定し、-1を掛ければ絶対値になります。

投稿2018/12/27 13:02

aikon_marimo

総合スコア1083

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazu-.

2018/12/27 13:12

サンプルコードがあれば教えて下さい。 今後は効率性を考えてライブラリ関数を使って行きますが、私自身の疑問だったのでスッキリしたい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問