プロが教える店舗&オフィスのセキュリティ対策術

学校のレポートでC言語のプログラムを作りました。ところが実行してみると計算値を表示させるところに

-1.#IND00

と表示されます。本当は実数が表示されるはずなに・・・
多分、私のプログラムが間違っているのだろうと思います。どこが間違っているのか目星をつけるためにこの出力結果の意味を教えてほしいのです。

A 回答 (2件)

こんにちは。


このエラーは、数値的なミスがあるときに表示されます。

fmod の説明には

-10.00/3.00 の剰余は -1.#IND00
3.00/0.00 の剰余は -1.#IND00

と出ています。
上は、負数の剰余は数学的にありえないため、
下は、数学的にゆるされていないため、
エラーになっています。

marradona さんの計算値がどのようなものかわかりませんが、
直前で数値を printf で表示して数学的エラーがないか、確認してみてはどうですか?
以外と0割りのエラーは多いですよ。(代入ミスとかで)
    • good
    • 0
この回答へのお礼

おっしゃる通りprintfで計算値を調べてみて原因を特定できました。どうやら
for文の中のdouble pow(double x, double y)への引数としてxが0、yが負の数となる場合があってそれが数値エラーとなったようです。
ありがとうございました。

お礼日時:2001/08/17 20:03

恐らくは、文字列として表示しているのではないでしょうか?



flot aaa;

printf("%s",aaa);

とかしていませんか?

具体的にプログラムを教えて頂けなければ、これ以上はわかりません。
    • good
    • 0
この回答へのお礼

うーん。プログラムを見直しましたが、そういう間違いではないようです。

お礼日時:2001/08/17 16:54

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