#include <stdio.h>
#include <stdlib.h>
#define MAX_NOM 20
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
typedef struct{
char nomParada [MAX_NOM];
int distanciaAnterior;
int tempsAnterior;
}t_parada;
typedef struct {
char nomLinia [MAX_NOM];
int nParades;
t_parada *dadesParades;
}t_linia;
void OmplirDadesParades (t_parada *parades, int numParades){
int i=0;
/*Dades de la primera parada */
printf ("Introdueixi nom de la parada %d:", i+1);
fflush (stdin);
gets (parades[0].nomParada);
parades[0].distanciaAnterior=0;
parades[0].tempsAnterior=0;
for (i=1; i<numParades; i++){
printf ("Introdueixi nom de la parada %d:", i);
fflush (stdin);
gets (parades[i].nomParada);
printf ("Distancia anterior:");
scanf ("%d", ¶des[i].distanciaAnterior);
printf ("Temps anterior:");
scanf ("%d", ¶des[i].tempsAnterior);
}
}
//void BuscarParades
int OmplirDadesLinia (t_linia *liniaTren){
int error=0, distancia=0;
int temps=0;
int paradaActual=0;
printf ("\nNom de la linia:");
fflush(stdin);
gets (liniaTren->nomLinia);
printf ("\nNombre de parades:");
scanf ("%d", &(liniaTren->nParades));
if ((liniaTren->nParades) < 2 ){
printf ("\nError\n");
printf ("Introduzca un nombre de parades igual o major a 2:");
scanf ("%d", &(liniaTren->nParades));
}
liniaTren->dadesParades=(t_parada *)malloc(sizeof(t_parada) *(liniaTren->nParades));
if (liniaTren->dadesParades == NULL)
printf ("Error. No has pogut guardar la memoria.");
else{
OmplirDadesParada (liniaTren->dadesParades, liniaTren->nParades);
if (error=CalcularTrajecte (liniaTren, &distancia, &temps) == 0){
printf ("Error");
}
else{
}
}
}
int CalculLinia (t_parada *linia, int *distancia, int *temps){
char inici[MAX_NOM];
char final[MAX_NOM];
distancia=(linia[0].distanciaAnterior - linia[]
}
//void BuscarLinia
int main() {
int liniaActual=0;
int nLinies;
t_linia *rodalies;
printf ("Quantes linies de tren vols tenir:");
scanf ("%d", &nLinies);
rodalies=(t_linia *)malloc(sizeof(t_linia) *nLinies);
if (rodalies == NULL){
printf ("Error");
}
else {
char res;
do{
printf ("\n\nMenú:\n");
printf ("a. Afegir b. Consultar longitud c. Sortir\n");
res=getch("%c",&res);
switch (res){
case 'a':
if (liniaActual == nLinies){
printf ("Error\n");
}
else {
if (OmplirDadesLinia(rodalies[liniaActual]) == 0)
liniaActual++;
}
break;
}
}while (res == 'c');
}
return 0;
}
Act_llistes_enllaçades.pdf (20.1 KB)