allora chiedo scusa per nn essere stato chiaro e posto il codice sorgente di 2 file distinti

codice:
/*PONYEXPRESS.C*/
#include<stdio.h>

#include<time.h>

#include"tempoedistanza.h"

#include<stdlib.h>

/*the rive*/

#define max 40

//#define distance 20

struct tm T;

struct tm Time(char* startPlace, char* endPlace, struct tm ora){return ora;};



typedef struct consegna

{

char partenza[20];/*dove carico il pacco x la prima destinazione*/

char arrivo[20];/*dove scarico il pacco x poi riprendere la corsa*/

int priorita;// priorit� della consegna 0 oppure 1

int distanza;// distanza tra il luogo della partenza e del arrivo

struct tm tempoConsegna;//tempo x la consegna

struct tm caricamento;// ora di caricamento 

struct tm consegna; // ora di consegna

}Consegne;



typedef struct datigiornata

{

float G;/*indica la durata dell' orario di lavoro*/

int tot_dist;//totale distanza percorsa durante la giornata lavorativa

char inizio[20];//luogo di partenza della prima consegna e dove finira' l' ultima consegna

struct tm oraentrata;

struct tm orauscita;

}datiG;

typedef struct pacchi{


char ordinicons; 
char ordinaconseff;

}conseseguite;


int main(int argc, char **argv)



{

//float distance;     



Consegne p[max]={"","", 0};	// Array di Max elementi dove salvera' tutte le tripple lette da file

FILE *in,*out1,*out2;//streams in= File con tutti i dati  out1= file con tutte le consegne fatte , out2 : file con le consegne ad alta priorita'

 int i=0;//indice x scorrere l' array p

 datiG d;

 d.tot_dist=0;


                                       /* if(p[i].consegneseguite!=datiG){
                                        printf("il valore e':%c\n",consegneseguite);
                                                            
                                                            }*/
                                                           /* else(consegneseguite<=datiG){

                                                               printf("il valore e' :%c\n",consegneseguite);
                                                                                printf("il valore inserito e':%d",datiG);
                                                                                                    }  */                 


 	if((in = fopen(argv[1], "r"))==NULL) {

		printf("Can't read file!\n");

		}

	if((out1 = fopen(argv[2], "w"))==NULL) {

		printf("Can't read file!\n");

		}

	if((out2 = fopen(argv[3], "w"))==NULL) {

		printf("Can't read file!\n");

		exit(0);

	}

	

	fscanf(in,"%f\n",&d.G);

	fscanf(in,"%s\n",&d.inizio);

	fscanf(in,"%d\n",&d.oraentrata.tm_hour);

    fgetc(in);

    fscanf(in,"%d\n",&d.oraentrata.tm_min);

    printf("\nsono qui %.1f , %s , %d:%d\n ",d.G,d.inizio,d.oraentrata.tm_hour,d.oraentrata.tm_min);



    while(!feof(in)){

        fscanf(in,"%s %s %d\n",p[i].partenza,p[i].arrivo,&p[i].priorita);

            

        if(p[i].priorita==1) {   

        printf("Pacco ad alta priorita' processato\n");
        fprintf(out1,"%s %s %d\n",p[i].partenza,p[i].arrivo,p[i].priorita);
                    }


        if(p[i].priorita==0)
                    {
                    printf("pacco a bassa priorità processato\n");                    
                    fprintf(out2,"%s %s %d\n",p[i].partenza,p[i].arrivo,p[i].priorita);
                    
                    }        
        

        p[i].distanza=distance(p[i].partenza, p[i].arrivo);

        i++;

           


                    }

                    fclose(in);

    fclose(out1);

    fclose(out2);

    

    

    return 0;

}
/*================================================= =========================== timeAndDistance.c ================================================== ============================*/
#include <time.h>
#include "tempoedistanza.h"
struct tm startRush[2], endRush[2];
int sumChars (char *string)
{
int sum = 0;
int i = 0;
while (string[i] != '\0')
{ sum = sum + string[i++];
}
return sum;
}
int distance (char *startPlace, char *endPlace)
{ return ((sumChars (startPlace) + sumChars (endPlace)) * MAGIC1) % MAGIC2; }
int numtime (struct tm t) { return t.tm_min + 60 * t.tm_hour; }
int minTime (char *startPlace, char *endPlace)
{ int hour, min; int dist = distance (startPlace, endPlace) + MAGIC3; hour = (int) (dist / KMpH_MAX); min = ((int) (dist * 60 / KMpH_MAX)) % 60;
return (hour * 60 + min);
}
int maxTime (char *startPlace, char *endPlace)

{ int hour, min; int dist = distance (startPlace, endPlace) + MAGIC4; hour = (int) (dist / KMpH_MIN); min = ((int) (dist * 60 / KMpH_MIN)) % 60; return (hour * 60 + min); }
travelTime (char *startPlace, char *endPlace, struct tm currentTime)
{ if ((numtime (currentTime) >= numtime (startRush[0]) && numtime (currentTime) < numtime (endRush[0])) || (numtime (currentTime) >= numtime (startRush[1]) && numtime (currentTime) < numtime (endRush[1]))) return maxTime (startPlace, endPlace);
else return minTime (startPlace, endPlace); }
int setRushTime (struct tm startTime, struct tm endTime, int which)
{ /* which = 1 se mattina, 2 se pomeriggio */
if (which < 1 || which > 2)
return 0; startRush[which - 1] = startTime;
endRush[which - 1] = endTime;
return which;
}

codice: