Witam. Piszę program do obliczania przybliżonej wartości liczby PI metodą Monte Carlo. Program ma jeszcze wykonać obraz w formacie .pgm przedstawiający tą metodę graficznie (piksele w kole czarne, piksele poza kołem szare, tło białe). Problem polega na tym, że program kompiluje sie normalnie lecz gdy go włączam Visual wyrzuca błąd że stos jest przepełniony. Niestety nie wiem gdzie jest ten problem w kodzie źródłowym.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include "carlo.h"
#include <time.h>
void MonteCarlo ()
{
FILE *plik;
int a, x, y, i, p;
int b=0;
double pk, pi;
int r=300;
int tab[599][599];
srand((unsigned int)time(NULL));
printf ("Podaj ilosc punktow ktore maja zostac wylosowane:\n");
scanf ("%i", &a);
for(x=0; x<=599; x++)
{
for(y=0; y<=599; y++)
{
tab[x][y] == 2;
}
}
for (i=0; i<=a; i++)
{
rand()%600 == x;
rand()%600 == y;
if((x-300)*(x-300) + (y-300)*(y-300) <= r*r)
{
tab[x][y] == 0;
b++;
}
else
{
tab[x][y] == 1;
}
}
p == 4*r*r;
pk == p*(b/a);
pi= pk/(r*r);
printf("\nPrzyblizona wartosc liczby pi to %f\n", pi);
plik = fopen("monte carlo.pgm","w");
if(plik == NULL)
{
printf("\n\n Blad otwarcia pliku! \n\n");
exit(-1);
}
fprintf(plik, "P2\n");
fprintf(plik,"# Comment #\n");
fprintf(plik, "600 600\n");
fprintf(plik, "2\n");
for (x=0; x<=599; x++)
{
for (y=0; y<=599; y++)
{
fprintf(plik,"%d ",tab[x][y]);
}
fprintf(plik, "\n");
}
fclose(plik);
return;
}