1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| #include <stdio.h>
#include <stdlib.h>
#define NB 3
#define NC 2
typedef struct{
int vs; //ville suivante
int vd; // distance de la ville
}t_chem;
typedef struct{
int nvil; //numéro de la ville
int nsuiv; //numero de la ville suivante
}t_iti;
void f_x(char *ville);
void fx_x(char *ville, t_chem Chemin[][NC], t_iti Diti[NB]);
int main()
{
int temp;
char ville[NB];//contient les nom des villes
t_chem Chemin[NB][NC];//Pour chaque ville contient les villes 'suivantes'
//et la distance qui sépare chaque ville suivante de la ville de départ.
t_iti Data_iti[NB]; //Contien la liste des villes parcourues
int i, j;
//Initialise les nom des ville:
//un nom est composé d'un seul caractère!!!
for(i=0; i<NB; i++)
{
printf("\nVille[%d] = ", i);
temp=getchar();
ville[i]=temp;
fflush(stdin);
}
//POur chaque ville, saisir les ville qu'il relie, et la distance
for(i=0; i<NB; i++){
for(j=0; j<NC; j++){
printf("\nPour %c saisir chemin %d: ", ville[i], j);
scanf("%d", &Chemin[i][j].vs);
printf("\nPour %c chemin %d saisir la distance: ", ville[i], j);
scanf("%d", &Chemin[i][j].vd);
}
}
f_x(ville);//appel fonction
fx_x(ville, Chemin, Data_iti);//appel fonction
return 0;
}
//Affiche les ville avec leur numéros respectifs
void f_x(char *ville)
{
char *p;
p=ville;
int j;
for(j=0; j<NB; j++)
{
printf("Ville[%d] = %c\n", j, *(p+j));
}
}
//Pour l'instant, affiche pour une ville choisie les villes auquelles elle est reliée
//et la distance qui les sépare...
void fx_x(char *ville, t_chem Chemin[][NC], t_iti Data_iti[NB])
{
int optimal[NB];
int long_opti = 50000;
int long_iti;
int dep, arr;
char *Cur_ville;//Pointeur sur le tableau, qui contient le nom des villes
int *Follow_iti; // Pointeur qui contient la liste des villes disponible...
//...depuis une ville de départ.
int i, j, k, l;
//saisir dep
printf("\nsaisir num ville dep! : ");//ville de départ
scanf("%d", &dep);
printf("\nsaisir num ville ARR! : ");
scanf("%d", &arr);
Cur_ville=&ville[dep];//Cur_ville pointe sur la ville de départ
//Data_iti[0].nvil=dep;
//Data_iti[0].nsuiv=0;
Follow_iti=&Chemin[*Cur_ville][0].vs;
for(i=0; i<NC; i++){
printf("Follow_iti: dep _ %d = %d\n", i, *(Follow_iti+i));
}
} |
Partager