前提・実現したいこと
C言語において、モンテカルロ法での円周率計算をしたいのですが、プログラムを実行すると動作停止を起こしてしまいます。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
~.exeは動作を停止しました。
C言語
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #define n 1000000 int main(){ FILE *fp_square, *fp_sector; int i, count = 0; double x[n], y[n], d, pi; fp_square = fopen("xy.txt", "w"); fp_sector = fopen("xy_in.txt", "w"); srand((unsigned int)time(NULL)); for(i = 0; i < n; ++i){ x[i] = (double)rand()/RAND_MAX; y[i] = (double)rand()/RAND_MAX; d = sqrt(pow(x[i], 2) + pow(y[i], 2)); fprintf(fp_square, "%lf\t%lf\n", x[i], y[i]); if(d <= 1){ count += 1; fprintf(fp_sector, "%lf\t%lf\n", x[i], y[i]); } } pi = 4.0*count/n; printf("The number of ... is %d\n", count); printf("pi (approx value): %lf\n", pi); fclose(fp_square); fclose(fp_sector); return 0; }
試したこと
nの数を少なくすると問題なく実行できるのですが、1000000などの大きい数字にすると停止します。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答4件
あなたの回答
tips
プレビュー