• ベストアンサー

C言語プログラム

学校のレポートでC言語のプログラムを作りました。ところが実行してみると計算値を表示させるところに -1.#IND00 と表示されます。本当は実数が表示されるはずなに・・・ 多分、私のプログラムが間違っているのだろうと思います。どこが間違っているのか目星をつけるためにこの出力結果の意味を教えてほしいのです。

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

  • ベストアンサー
  • fuji1
  • ベストアンサー率29% (109/371)
回答No.2

こんにちは。 このエラーは、数値的なミスがあるときに表示されます。 fmod の説明には -10.00/3.00 の剰余は -1.#IND00 3.00/0.00 の剰余は -1.#IND00 と出ています。 上は、負数の剰余は数学的にありえないため、 下は、数学的にゆるされていないため、 エラーになっています。 marradona さんの計算値がどのようなものかわかりませんが、 直前で数値を printf で表示して数学的エラーがないか、確認してみてはどうですか? 以外と0割りのエラーは多いですよ。(代入ミスとかで)

marradona
質問者

お礼

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

その他の回答 (1)

  • miya_777
  • ベストアンサー率31% (44/140)
回答No.1

恐らくは、文字列として表示しているのではないでしょうか? flot aaa; printf("%s",aaa); とかしていませんか? 具体的にプログラムを教えて頂けなければ、これ以上はわかりません。

marradona
質問者

お礼

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

関連するQ&A

専門家に質問してみよう