#include #include void istog(char *in,int n){ double min,max,a,dx; int nexlud,i,ntot=0; int *isto; FILE *input; min=1e+99; max=1e-99; input=fopen(in,"r"); isto = (int *) calloc(n,sizeof(int)); if (input==NULL) { fprintf(stderr,"error in input\n"); return; } nexlud=0; #ifdef _MAXMIN fprintf(stderr,"insert min and max:\n"); scanf("%lf %lf",&min,&max); while (fscanf(input,"%lf",&a)!=EOF){ if ((min<=a)&&(max>=a)) ntot++; else nexlud++; } ntot+=nexlud; #endif #ifndef _MAXMIN while (fscanf(input,"%lf",&a)!=EOF){ ntot++; if (min>=a) min=a; if (max<=a) max=a; } #endif fprintf(stderr,"done, data are in [%lf,%lf]\n",min,max); fflush(stderr); dx =(max-min)/n; rewind(input); for(i=0; i=a)) isto[(int) ((a-min)/dx)]++; //else fprintf(stderr,"out %lf\n",a ); } for (i=0; i