dato il seguente codice non riesco a visualizzare la somma dei minuti in Uscita (U) e dei minuti in entrata (E) del seguente tabulato.txtcodice:#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 30 #define MAX 50 int main(int argc,char*argv[]) { FILE*fp; char str[MAX]; char data[9]; char numero[21]; int min,min1,min2,i, sume,sumu; char tipo[2]; char data1[9]; char data2[9]; if(argc!=2) { printf("errore\n"); return -1; } fp=fopen(argv[1],"r"); if(fp==NULL) { printf("file %s vuoto\n",argv[1]); return -2; } printf("inserisci le due date:\n"); scanf("%s %s",data1,data2); sume=0; sumu=0; while(fgets(str,MAX,fp)!=NULL) sscanf(str,"%s %s %d %c",data,numero,&min,tipo); for(i=0;i<MAX;i++){ if(strcmp(str,data1)) { if(str=='E') { sume+=min; min1=min; } } else if (strcmp(str,data2)) { if(str=='U') { sumu+=min; min2=min; } } else printf("errore\n"); } fclose(fp); printf("%s - Entrata: %d minuti - Uscita: %d minuti\n",numero,min1,min2); printf("%s - Entrata: %d minuti - Uscita: %d minuti\n",numero,min1,min2); return 0; }
20110701 345677770 30 U
20110603 02345678 10 U
20110704 345677770 30 U
20110701 345677770 18 U
20110702 011345345 20 E
20110703 338767676 90 U
che per esempio io do in input
Inserire le due date:
20110701 20110702
e in output ho:
345677770 – Entrata: 0 minuti - Uscita: 48 minuti
011345345 – Entrata: 20 minuti - Uscita: 0 minuti
cioè somma dei minuti di quei numeri compresi fra due date.
ho lanciato il codice ma mi esce solo uil tabulato dell ultimo numero e come minuti in E o in U numeri altissimi!!

Rispondi quotando