Code:
#include <stdlib.h>
#include <stdio.h>
#define NUM 100
#define IMAX 10
#define ISEED 777861
#define ISEED1 777862
#define RND() ((double)random()/(double)RAND_MAX)
main ()
{
int i, naccept=0, nreject=0, ntrial=0, c;
double x[NUM],s[NUM],r[NUM],pi;
srandom(ISEED);
naccept=0; nreject=0; ntrial=0;
for (i=0; i<NUM; i++)
{
x[i]=RND();
}
int j;
double y[NUM];
srandom(ISEED1);
for (j=0; j<NUM; j++)
{
y[j]=RND();
}
for (c=0; c<NUM; c++)
{
r[c]=x[c]*x[c]+y[c]*y[c];
printf("r=%lf\n",r[c]);
s[c]=r[c]*r[c];
printf("s[c]=%lf\n",s[c]);
if (s[c]<1){
naccept++;
}
else {
nreject++;
}
}
ntrial= naccept+nreject;
printf("naccept=%lf nreject=%lf ntrail=%lf\n",naccept,nreject,ntrial);
pi=4*(naccept/ntrial);
printf("pi=%.3lf\n",pi);
}