#include #include #include #include #define NEXP 100 #define LATO 0.5 #define RAGGIO 0.77 #define MINPEPE 330 #define MAXPEPE 550 int GetInt (char[],int,int); void GenCirc(float*); float fintorno(float); float pot(float,int); void contaPepe(float,float,int*,int*,int*); float media(int[]); int main(){ int N,i,j,A[NEXP],B[NEXP],C[NEXP]; float pepe[2],NA,NB,NC; srand48(time(0)); printf("Il programma calcola la frequenza con cui grani di pepe cadendo in un raggio di %.2f m colpiscono tre mattonelle quadrate di lato %.2f m \n",RAGGIO,LATO); N = GetInt("Inserire numero grani di pepe",MINPEPE,MAXPEPE); for(i=0;imax){ printf("Valore fuori intervallo!\n"); } }while(Xmax); return X; } void GenCirc(float * pepe){ float x,y; do{ x=fintorno(RAGGIO); y=fintorno(RAGGIO); }while(pot(x,2)+pot(y,2)>pot(RAGGIO,2)); *pepe=x; *(pepe+1)=y; } float fintorno(float valore){ float l; l=((float)lrand48()/RAND_MAX)*2*valore-valore; return l; } float pot(float base, int esp){ float A=1; int i; for(i=0;i0&&y0){ if(xLATO&&y>LATO&&x<2*LATO&&y<2*LATO){ *C+=1; } } float media(int mattonella[]){ int i; float media = 0; for(i=0;i