devo creare un file con scritto su ogni riga una zona e un numero
le zone sono V U F.
file:
V 23 F 78 U 32 F 67
V 43 U 234 F 67 V 19
dopo averlo creato devo leggerlo dicendo quante volte compare una zona, la media di ogni zona.
ho scritto printf("uno") due e tre per vedere quando si blocca il programma e si blocca sempre dopo il 2 ma non capisco il motivo! qualche suggerimento?? grazie in anticipo
codice:#include <stdio.h> #include <stdlib.h> #include <string.h> #define L 29 #define soglia 50 int main() { FILE*ff; ff=fopen("aree.txt","w"); if(ff==NULL){ printf("Errore scrittura"); } printf("uno"); char st[L],s[L]; char v[4]; int w[4]; int i,j; int contv=0,contf=0,contu=0; int sommav=0,sommaf=0,sommau=0; int medv=0,medf=0,medu=0; int maggu=0; for(i=0;i<2;i++){ gets(st); fprintf(ff,"%s",st);} fclose(ff); printf("due"); ff=fopen("aree.txt","r"); if(ff==NULL){ printf("Errore lettura"); printf("tre"); while(fgets(s,28,ff)!=NULL){ fgets(s,28,ff); sscanf(s,"%c %d %c %d %c %d %c %d",v[0],w[0],v[1],w[1],v[2],w[2],v[3],w[3]); for(j=0;j<4;j++){ if(v[j]=='V'){ contv++; sommav=w[j]+sommav; } if(v[j]=='F'){ contf++; sommaf=w[j]+sommaf; } if(v[j]=='U'){ contu++; } sommau=w[j]+sommau; if(w[j]>soglia){ maggu++; } } } fclose(ff); printf("quattro"); medv=sommav/contv; medf=sommaf/contf; medu=sommau/contu; printf("numero ettari Verdi:%d\n",contv); printf("numero ettari Fluviali:%d\n",contf); printf("numero ettari Urbani:%d\n\n",contu); printf("altezza media Verde:%d \n",medv); printf("altezza media Fluviale:%d\n",medf); printf("altezza media Urbana:%d\n\n",medu); printf("numero aree con altezza maggiore a %d: %d\n",soglia,maggu); return 0; } }

Rispondi quotando