Salve ragazzi, non riesco a capire perchè questo programma nun funzioni.

Deve acquisire da file dei dati nel formato:

<numero di telefono> <gg/mm/yyyy> <durata in secondi> <E/U>

E/U significa che la chiamata è in entrata o in uscita.

Deve prendere da tastiera un numero, trovare quel numero nel file e stampare:

1) minuti totali in uscita verso quel numero
2)data della chiamata più lunga in uscita verso quel numero
3) costo totale delle chiamate considerando uno scatto alla risposta di €0,20 e €0,12 al minuto che scattano al primo secondo del nuovo minuto;

posto direttamente il codice, spero che qualcuno possa aiutarmi:

codice:
 #include <stdio.h>
#include <string.h>
#include <math.h>

int main()
{

    char num[11];                // numero da acquisire
    char tel[11];                  // numero telefonico
    char date[10];               //data gg/mm/yyyy
    int sec;                        // secondi
    int sec_tot=0;               // secondi totali
    int sec_max=0;             //secondi massimi
    char date_max[10];       //data della chiamata di durata massima
    char EorU;                   //in Entrata o in Uscita
    float price;                   // prezzo della chiamata
    float price_tot;             //somma dei prezzi delle chiamate
    float min;                    //minuti (convertiti dai secondi)

    
    FILE* fp;
    
    printf("NUMERO: ");
    gets(num);
    
    fp=fopen("/Users/alessandro/Desktop/Telefonate_File/Telefonate_File/input.txt", "r");
    
    while (fscanf(fp, "%s %s %d %c",&tel,&date,&sec,&EorU)!=EOF) {
        
        
        if (strcmp(tel,num)==0) {
            
        if (EorU=='U') {                   // controlla se in entrata o in uscita
            
            if (sec>sec_max) {
                sec_max=sec;               // cerca la chiamata più lunga e salva la data
                strcpy(date_max, date);
                }
            
            sec_tot=sec_tot+sec;            // tempo di chiamate totali
            
            min=sec/60.0;       // divide per 60.0 in modo che si aspetti un risultato float
           
            price= 0.20 + (ceil(min)*0.12);  //ceil: 12 cent al primo secondo del nuovo minuto
            price_tot=price_tot+price;     //calcola il prezzo totale
            
           } 
            
        }
    }
    
    fclose(fp);
    
    printf("\nMINUTI TOTALI IN USCITA: %f" ,sec_tot/60.0);
    
    printf("\nCHIAMATA PIÙ LUNGA: %f min del %s",sec_max/60.0,date_max);
    
    printf("\nCOSTO TOTALE: %f",price_tot);

    

}



il file è questo:


3468403598 22/11/2011 100 U
3939464677 23/11/2011 30 E
3465674346 23/11/2011 40 U
0997451020 30/12/2011 50 U
0997451020 01/01/2012 100 E
3468403598 03/02/2012 200 U
3468403598 01/04/2011 100 U
3939464677 23/05/2011 30 E
3465674346 23/05/2011 40 U
0997451020 11/05/2011 50 E
0997451020 22/06/2012 300 E
3468403598 19/06/2012 50 U