ho cercato di renderlo simile a prima, dovresti comemntarla d+ perchè non avevo tempo.codice:#include <stdio.h> #define LARG 4 #define LUNG 20 void carica(int a,int *n,int f[][LARG]){ int i=0; if (!(*n)){ f[0][0]=a; f[0][1]=1; (*n)++; }else{ while (i<(*n)){ if (f[i][0]==a){ f[i][1]++; i=*n+1; }else i++; }/*end while*/ if(i==*n){ f[*n][0]=a; f[*n][1]=1; (*n)++; }/*end if*/ }/*end if else*/ }/*carica*/ void calcola(int f[][LARG],int n){ int tot=0,y; for(y=0; y<n;tot+=f[y][1],y++); printf("\n\n%d\n\n",tot); tot=100/tot; printf("\n\n%d\n\n",tot); for(y=0; y<n;f[y][2]=f[y][1]*tot,f[y][3]=f[y][2], y++); for (y=1 ; y<n ;f[y][3]=f[y][2] + f[y-1][3], y++); }/*calcola*/ void stampa(int f[][LARG],int n){ int i; for (i=0 ; i<n ; i++) printf("%8d %8d %8d %8d \n", f[i][0] ,f[i][1] ,f[i][2] ,f[i][3]); }/*stampa*/ int main(void){ FILE *fdati; int a,n=0; int f[LUNG][LARG]; if((fdati=fopen ("dati.txt","r"))==NULL){ printf("ERRORE"); return(1); }/*end if apertura file*/ while(! feof(fdati)){ fscanf(fdati,"%d",&a); printf("%d\n",a); carica(a,&n,f); }/*end while lettura da file*/ fclose(fdati); calcola(f,n); stampa(f,n); return 0; }/*main*/