Advertisement
xDefo

Istogramma

Nov 5th, 2020 (edited)
1,981
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.63 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define MAX_LENGHT 100000
  4.  
  5.  
  6. void main()
  7. {
  8.    float val[MAX_LENGHT];
  9.    float max,min,temp,binl;
  10.    int n,i,a,ultimoscambiato,n_bins;
  11.    
  12.    printf("Inserire numero valori: ");
  13.    scanf("%d",&n);
  14.    for(i=0;i<n;i++)
  15.       {
  16.          scanf("%f",&val[i]);
  17.       }
  18.    
  19.     //sort array
  20.    a=(n-1);
  21.    ultimoscambiato=a;
  22.    while(ultimoscambiato>0)
  23.       {
  24.          ultimoscambiato=0;
  25.          for(i=0;i<a;i++)
  26.             {
  27.                if(val[i]>val[i+1])
  28.                   {
  29.                      temp=val[i];
  30.                      val[i]=val[i+1];
  31.                      val[i+1]=temp;
  32.                      ultimoscambiato=i;
  33.                   }
  34.             }
  35.          a=ultimoscambiato;
  36.       }
  37.    
  38.     /*for(i=0;i<n;i++)
  39.     {
  40.        printf("%f\n",val[i]);
  41.     }*/
  42.    
  43.    printf("Inserire lunghezza numero bins: ");
  44.    scanf("%d",&n_bins);
  45.    binl=(val[n-1]-val[0])/(n_bins);
  46.    printf("max=%f min=%f\n",val[n-1],val[0]);
  47.    printf("n_bins=%d Lunghezza bin=%f\n\n",n_bins,binl);
  48.  
  49.     //calcolo istogramma di n_bins
  50.  
  51.    for(min=val[0],max=min+binl,i=a=0;i<n;i++)
  52.       {
  53.          if((val[i]>=min)&&(val[i]<max))
  54.             {
  55.                a++;
  56.             }
  57.          else
  58.             {
  59.                if(max==val[n-1])
  60.                   {
  61.                      printf("[%f,%f] %d\n",min,max,a+1);
  62.                   }
  63.                else
  64.                   {
  65.                      printf("[%f,%f[ %d\n",min,max,a);
  66.                      min=max;
  67.                      max=min+binl; 
  68.                      i--; //skip ciclo
  69.                      a=0;
  70.                   }
  71.             }
  72.         }
  73.     printf("\n");
  74. }
  75.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement