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

自宅で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;
}

A 回答 (2件)

★アドバイス


・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 する前に定義して下さい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/31 20:41

_USE_MATH_DEFINESをmath.hをインクルードする前に定義してください。



数値演算定数 - MSDN
http://msdn.microsoft.com/ja-jp/library/4hwaceh6 …
    • good
    • 2
この回答へのお礼

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

お礼日時:2008/08/31 20:43

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