Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <math.h>
- void location( int[]);
- int media(int[], double, int);
- void location(int posizione[]){
- int x, i, j, Ntree;
- Ntree=lrand48()%5+3;
- posizione[0]=1;
- for(j=0; j<25; j++){
- posizione[j]=0;
- }
- for(i=0; i<(Ntree-1); i++){
- x=lrand48()%24+1;
- while(posizione[x]==1){
- x=lrand48()%24+1;
- }
- posizione[x]=1;
- }
- }
- int media(int range[], double medie, int Np){
- int i;
- for(i=0; i<50; i++){
- medie+=range[i];
- }
- return (medie/(double)Np);
- }
- main(){
- int Np, i, j, gmax, Xp, Ntree, posizione[25]={0}, range[50]={0};
- double medie=0;
- srand48(time(0));
- printf("Il programma descrive il moto di una palla di cannone indirizzata dentro un bosco e con una gittata massima di 100 metri. Se il proiettile colpisce un albero la sua gittata diminuisce di 10 metri.\n");
- printf("Prima di tutto mi dovresti dire quanti colpi vuoi far sparare dal cannone ( il numero deve essere maggiore o uguale a 10 e minore o uguale a 50 ). \n Np = ");
- scanf("%d", &Np);
- while(Np<10 || Np>50){
- printf("Il numero è errato! Reinseriscilo. \nNp = ");
- scanf("%d", &Np);
- }
- for(i=0; i<Np; i++){
- Xp=lrand48()%25;
- gmax=100;
- for(j=1; j<21; j++){
- location(posizione);
- if(posizione[Xp]==1){
- gmax-=15;
- if(gmax>=0){
- range[i]=j*5;
- }
- }
- else{
- gmax-=5;
- if(gmax>=0){
- range[i]=j*5;
- }
- }
- }
- printf("Gittata palla numero %d: %d \n", i, range[i]);
- printf("\n");
- }
- medie=media( range, medie, Np );
- printf("La media delle gittate è %lf.\n", medie);
- }
Advertisement
Add Comment
Please, Sign In to add comment