CCCPaste

cerchiLeggibile.c

#include 
#include 
#include 

#define N_MAX_PUNTI 1000000
#define STRLEN      1024
#define FILE_PATH   "./filetxt/cerchi.txt"

#define MAX(A,B)    ((A)>(B))?A:B
#define MIN(A,B)    ((A)<(B))?A:B
#define ABS(A)      ((A)<0)?(-A):A

typedef struct _dot {
    float x;
    float y;
} dot;
typedef struct _circ {
    dot centro;
    float r;
} circ;

typedef dot*    pdot;
typedef circ*   pcirc;
typedef FILE*   pfile;

float frandminmax(float min, float max)
{
    return ((((float)rand())/RAND_MAX)*(max-min))+min;
}

int main(void)
{
    unsigned i,i_mc,n_cerchi,n_hit,check;
    float x_min,x_max,y_min,y_max,x_min_mc,x_max_mc,y_min_mc,y_max_mc,r_grande,r_gq,a,b,c,area;
    char s[STRLEN];
    dot baricentro,test;
    pcirc pcerchio,pc,pc_max;
    pfile pf;

    srand(time(NULL));

    if ((pf=fopen(FILE_PATH,"r"))==NULL) goto err_file;
    fscanf(pf,"%s",s);
    n_cerchi=atoi(s);
    if ((pcerchio=(pcirc)malloc(sizeof(circ)*n_cerchi))==NULL) goto err_mem;

    baricentro.x=baricentro.y=0;
    for (i=0;icentro.x;
                b=test.y-pc->centro.y;
                c=pc->r;
                if ((a*a+b*b)<(c*c)) {
                    n_hit++;
                    check=0;
                }
                pc++;
            } while ((pc