Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Un file di testo contiene una sequenza, di lunghezza ignota, di numeri reali,
- * i cui valori appartengono all’intervallo [0,100[ .
- * (NOTA: la notazione [x,y[ indica l’intervallo da x a y in cui l’estremo
- * inferiore è incluso e l’estremo superiore è escluso).
- * Si scriva un programma in linguaggio C che legga tale sequenza, ricevendo
- * il nome del file sulla linea di comando, e stampi per
- * ciascun intervallo [0,10[, [10,20[, [20,30[,... [90,100[ (si osservi che
- * l’estremo superiore di ogni intervallo è sempre escluso)
- * il numero di valori letti dal file che cadono in tale intervallo.
- * Esempio:
- * file numeri.dat:
- * 31.2
- * 32.8
- * 40
- * 0
- * 1.44
- * 33.33
- * Output:
- * [0,10[ 2
- * [10,20[ 0
- * [20,30[ 0
- * [30,40[ 3
- * [40,50[ 1
- * [50,60[ 0
- * [60,70[ 0
- * [70,80[ 0
- * [80,90[ 0
- * [90,100[ 0
- */
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX_N 1024
- FILE * my_open_file(char[], char[1]);
- int my_fget_array(FILE *, double[]);
- void my_output_range(int, double[]);
- int main(){
- int nu;
- double numbers[MAX_N];
- FILE * fp;
- fp=my_open_file("numeri.dat", "r");
- nu=my_fget_array(fp, numbers);
- my_output_range(nu, numbers);
- fclose(fp);
- return 0;
- }
- FILE * my_open_file(char file_name[], char mode[1]){
- FILE * fp;
- if((fp=fopen(file_name, mode))!=NULL)
- return fp;
- else
- exit(1);
- }
- int my_fget_array(FILE * fp, double numbers[]){
- int i=0;
- while(feof(fp)==0)
- fscanf(fp, "%lf", &numbers[i++]);
- return i;
- }
- void my_output_range(int nu, double numbers[]){
- int i, j, occs;
- for(i=0;i<=90;i+=10){
- occs=0;
- for(j=0;j<nu;j++)
- if((numbers[j]>=i)&&(numbers[j]<(i+10)))
- occs++;
- printf("[%-3d, %3d[\t%d\n", i, i+10, occs);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement