• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語を実行すると-infが出てきて困っています。)

C言語で実行すると-infが出てきて困っています

このQ&Aのポイント
  • C言語を実行すると-infが表示され、困っています。コンパイラはgccを使用しています。
  • C言語を実行する際に-infが表示される問題に直面しています。現在、gccコンパイラを使用しています。
  • gccコンパイラを使用してC言語を実行すると-infが表示される問題に困っています。

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

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

で、本題の-infの件は、 >x1 = (double)rand()/(RAND_MAX); >x2 = (double)rand()/(RAND_MAX); >y = sigma*sqrt(-2*log(x1))*sin(2*Pi*x2) + mean; log(x1)のところで、「たまたま発生した」x1=0を使っている ためではないでしょうか。 0の対数は求められませんからね。

macdoc
質問者

お礼

乱数を初期化してうまくいきました。 ありがとうございます。

その他の回答 (3)

回答No.4

当方、Mac のGcc (v4.0.1)ですが、コンパイルもすんなり通りますし、実行もエラーなく出力していますけどね。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

#1 に加えて mean や sigma (って何?) も初期化されていないですね. ついでにいうと, seiki って関数は間違ってませんか? 「0 以上 1 未満」の乱数を使うのがセオリーだったような.

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

>price[i+1] = price[i]+seiki(); iが0のとき、値が定まっていないprice[0]を参照しています。 malloc()で確保した領域の内容が特定の値(例えば0x00)で 埋まっているとは限りません。 >x1 = (double)rand()/(RAND_MAX); >x2 = (double)rand()/(RAND_MAX); rand()を使うのであれば、その前に一度だけ 乱数の種を初期化しておく必要があります。 その他、気になる点: >price=(double*)malloc(sizeof(double)*data+10); 最後の+10の意味がわかりません。 定義しただけで使っていない変数が多々見受けられます。 余分なコードはそぎ落としましょう。