• ベストアンサー

Visial C++おけるπの使い方

自宅でCプログラミングの練習をするためVisial C++ 2008を使って プログラムをしています。y<sin(πx)となった時の 割合などを計算するプログラムで                「M_PIが定義されていない識別子です」 とでてきます。所持している本を参考にしてもM_PI=πとして用いる と書いてあり、math.hもインクルードしてるので原因が分からなくて 困ってます。Visial c++ではπの使い方には何か別の使い方がある のでしょうか?よろしくお願いします。 *↓が実際に作ったプログラムです。 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> int main(void){ int i,n,count=0; double x,y,r,error; srand((unsigned)time(NULL)); /*乱数の初期化*/ printf("How many trials?"); scanf("&d",&n); for(i=0;i<n;i++){ x=rand()/(RAND_MAX+1.0); y=rand()/(RAND_MAX+1.0); if(y<sin(M_PI*x)){ count++; } } r=(double)count/n; /*キャスト演算子を使用*/ error=2/M_PI-r; printf("Result is %f (Error: %f)\n",r,error); return 0; }

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★アドバイス ・math.hをインクルードする前に『_USE_MATH_DEFINES』定数を define します。 #define _USE_MATH_DEFINES #include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> int main( void ) {  :  return 0; } 必ず include する前に定義して下さい。

tomatoma11
質問者

お礼

アドバイスありがとうございます、早速やってみたところ 動きました。こんなにはやく回答を頂けるとは・・・・ ありがとうございました。m(__)m

その他の回答 (1)

  • Werner
  • ベストアンサー率53% (395/735)
回答No.2

_USE_MATH_DEFINESをmath.hをインクルードする前に定義してください。 数値演算定数 - MSDN http://msdn.microsoft.com/ja-jp/library/4hwaceh6.aspx

tomatoma11
質問者

お礼

アドバイスありがとうございます。ページを見ると CとC++とでもまた扱いが異なるんですね。。。 参考になりました、ありがとうございます。