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;
}
}