Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <float.h>
  4. #include <math.h>
  5.  
  6. #define STRLEN 256
  7. #define FILEPARI "pari.bin"
  8. #define FILEDISPARI "dispari.bin"
  9. #define BASENAME "file"
  10.  
  11. typedef FILE* pfile;
  12. typedef float* pfloat;
  13.  
  14. int main(void)
  15. {
  16. char s[STRLEN];
  17. pfile pfpari,pfdispari;
  18. unsigned np,nd,i;
  19. float minimo=FLT_MAX,massimo=-FLT_MAX;
  20. pfloat pdati;
  21. int vl,vr,j,contatore=0;
  22.  
  23. if((pfpari=fopen(FILEPARI,"rb"))==NULL) {printf("Errore file 1\n");return EXIT_FAILURE;}
  24. if((pfdispari=fopen(FILEDISPARI,"rb"))==NULL) {printf("Errore file 2\n");return EXIT_FAILURE;}
  25. fread(&np,sizeof(unsigned),1,pfpari);
  26. fread(&nd,sizeof(unsigned),1,pfdispari);
  27. if((pdati=(pfloat)malloc(sizeof(float)*(np+nd)))==NULL) {printf("Errore memoria");return EXIT_FAILURE;}
  28. for(i=0;i<(np+nd);i++)
  29. {
  30. if((i%2)!=0)
  31. fread(&pdati[i],sizeof(float),1,pfdispari);
  32. else
  33. fread(&pdati[i],sizeof(float),1,pfpari);
  34. }
  35. fclose(pfpari);
  36. fclose(pfdispari);
  37.  
  38. for(i=0;i<(nd+np);i++)
  39. {
  40. if(pdati[i]>massimo)
  41. massimo=pdati[i];
  42. if(pdati[i]<minimo)
  43. minimo=pdati[i];
  44. printf("%.2f\n",pdati[i]);
  45. }
  46. printf("Minimo=%.2f Massimo=%.2f\n",minimo,massimo);
  47. vl=floor(minimo);
  48. vr=ceil(massimo);
  49.  
  50.  
  51. for(j=vl;j<vr;j++)
  52. {
  53. for(i=contatore=0;i<(np+nd);i++)
  54. {
  55. if((pdati[i]>=(j))&&(pdati[i]<(j+1)))
  56. contatore++;
  57. }
  58. printf("Nell’intervallo [%d,%d[ abbiamo %d misure\n",j,j+1,contatore);
  59. if(contatore!=0)
  60. {
  61. sprintf(s,"%s%d.txt",BASENAME,j);
  62. if((pfpari=fopen(s,"w"))==NULL) {printf("Errore file 3\n");return EXIT_FAILURE;}
  63. fprintf(pfpari,"%d",contatore);
  64. fclose(pfpari);
  65. }
  66. }
  67.  
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement