-PR-
解決済み

C言語で数字の符号を取る関数は?

  • すぐに回答を!
  • 質問No.97741
  • 閲覧数6290
  • ありがとう数9
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 100% (2/2)

Cを使って数値の符号を取るような関数ってありますか?
具体的には、Fortranを例にとると、
|x|にyの符号をつけるときには、

SIGN(x,y)

としますが、これと同じ事をCでやりたいと思っています。
xの絶対値を取るような関数は

fabs(x)

でできる事は知っているのですが、
yの符号をどうやって取るのかがわからないのです。

あと、ちょっと違う質問なんですが、
ある本のfortranのプログラムで

!x=・・・・・・

というのがあったんですが、この !x というのは
どういう意味なのか、教えていただければ幸いです。

基本的な質問かも知れませんが、よろしく御願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル10

ベストアンサー率 17% (31/179)

普通にyを調べてマイナスだったら0から引けばいいのでは?

if(y<0)x = -x;

みたいにすればいいんじゃないかな?
関数でなければいけなければ自分で巻数化すればいいし・・・

float Sign(float x,float y)
{
if(y<0)x = -x;
return x;
}

みたくしくちゃえば
お礼コメント
osamu326

お礼率 100% (2/2)

なるほど。簡単ですね。
目からウロコが取れました。
有難うございました。
投稿日時 - 2001-06-30 18:30:40
関連するQ&A
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル10

ベストアンサー率 25% (29/115)

2~3回読んで、質問したいことがやっとわかりました。 「xに、yと同じ符号を付ける方法を知りたい」ってことですね。(かな?ちがうかな?) y/abs(y) で yの符号が得られる(1か-1)ので、 abs(x)にかける。 SIGN(x,y){  return abs(x)*(y/abs(y)); } あ、結局 ponntaさんの回答と大差ないな。 な~んだ、ponntaさんの ...続きを読む
2~3回読んで、質問したいことがやっとわかりました。
「xに、yと同じ符号を付ける方法を知りたい」ってことですね。(かな?ちがうかな?)

y/abs(y) で yの符号が得られる(1か-1)ので、
abs(x)にかける。

SIGN(x,y){
 return abs(x)*(y/abs(y));


あ、結局 ponntaさんの回答と大差ないな。
な~んだ、ponntaさんのほうが速くてコンパクトだわ。
しつれいしやした~
お礼コメント
osamu326

お礼率 100% (2/2)

あっそうか!
絶対値で割ってしまえば符号がでますよね!
お手数おかけしました。
投稿日時 - 2001-06-30 18:33:37


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ