- ベストアンサー
C言語プログラム
学校のレポートでC言語のプログラムを作りました。ところが実行してみると計算値を表示させるところに -1.#IND00 と表示されます。本当は実数が表示されるはずなに・・・ 多分、私のプログラムが間違っているのだろうと思います。どこが間違っているのか目星をつけるためにこの出力結果の意味を教えてほしいのです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 このエラーは、数値的なミスがあるときに表示されます。 fmod の説明には -10.00/3.00 の剰余は -1.#IND00 3.00/0.00 の剰余は -1.#IND00 と出ています。 上は、負数の剰余は数学的にありえないため、 下は、数学的にゆるされていないため、 エラーになっています。 marradona さんの計算値がどのようなものかわかりませんが、 直前で数値を printf で表示して数学的エラーがないか、確認してみてはどうですか? 以外と0割りのエラーは多いですよ。(代入ミスとかで)
その他の回答 (1)
- miya_777
- ベストアンサー率31% (44/140)
回答No.1
恐らくは、文字列として表示しているのではないでしょうか? flot aaa; printf("%s",aaa); とかしていませんか? 具体的にプログラムを教えて頂けなければ、これ以上はわかりません。
質問者
お礼
うーん。プログラムを見直しましたが、そういう間違いではないようです。
お礼
おっしゃる通りprintfで計算値を調べてみて原因を特定できました。どうやら for文の中のdouble pow(double x, double y)への引数としてxが0、yが負の数となる場合があってそれが数値エラーとなったようです。 ありがとうございました。