IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

ce code ne fonctionne pas


Sujet :

C

  1. #1
    Membre éclairé Avatar de chicabonux
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2007
    Messages : 329
    Par défaut ce code ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    /*Nom : devoir numéro 9
    Version 1.0
    Auteur:
    Date de dernière mise à jour :14/7/2009
    */
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
     
    #define NB_VILLES 20
    #define NB_CHEMINS 5
    #define LONGNOM 30
     
    struct
    {
    	short ville_suiv;
    	short distance;
    }tchemin[NB_VILLES][NB_CHEMINS];
     
    /*prototypes des fonctions*/
    void ville(int *nbville,char tabville[NB_VILLES][LONGNOM]);
    void distance(char tabville[NB_VILLES][LONGNOM],int taille);
    void parcours(char tabville[NB_VILLES][LONGNOM],int taille);
     
    int main()
    {
    	/*déclaration des variables*/
    	int nbv=0,i,j;
    	short fini=0;char tvilles[NB_VILLES][LONGNOM];
    	char choix[10];
    	char chx;
     
    	/*initialisation du tableau tchemin*/
    	for(i=0;i<NB_CHEMINS;i++)
    	{
    		for(j=0;j<NB_CHEMINS;j++)
    		{
    			tchemin[i][j].ville_suiv=-1;
    			tchemin[i][j].distance=0;
    		}
    	}
     
    	system("clear");
    	while(fini==0)//boucle du menu principal
    	{
    		printf("\tMENU\n");
    		printf("option 1 : Ville\noption 2 : Distance\noption 3: Parcours\nexit\n");
    		printf("votre choix : ");
    		scanf("%s",choix);
    		if(strcmp(choix,"ville")==0||strcmp(choix,"Ville")==0)//option 1=ville
    		{
    			system("clear");
    			printf("vous pouvez saisir un maximum de 20 villes\n");
    			do
    			{
    				ville(&nbv,tvilles);
    				getchar();
    				printf("%d ville(s) saisies\n",nbv);
    				printf("voulez vous continuer ? [O]ui [N]on: ");
    				scanf("%c",&chx);
    			}while(chx!='n'&&chx!='N'&&nbv!=20);
     
    		}
    		else if(strcmp(choix,"Distance")==0||strcmp(choix,"distance")==0)/*option 2=
    																		 distance*/
    		{
    			distance(tvilles,nbv);
    		}
    		else if(strcmp(choix,"Parcours")==0||strcmp(choix,"parcours")==0)/*option 3=
    																		 parcours*/
    		{
    			parcours(tvilles,nbv);
    		}
    		else if (strcmp(choix,"exit")==0||strcmp(choix,"Exit")==0)//option 4 fin
    		{
    			printf("Au revoir\n");
    			fini=1;
    		}
    		else//cas d'une erreur de saisie
    		{
    			printf("choix invalide veuillez recommencer\n");
    		}
    	}
    	return EXIT_SUCCESS;
    }
     
    void ville(int *nbville,char tabville[NB_VILLES][LONGNOM])
    {
    	char tampon[LONGNOM];//tampon stockant la chaîne saisie par l'utilisateur
    	int i=0,existe=0;
     
    	printf("saisissez le nom de la ville : ");
    	if(*nbville==0)//cas de la saisie de la première ville
    	{
    		scanf("%s",tabville[*nbville]);
    		printf("ville %s enregistree\n",tabville[*nbville]);
    		*nbville=*nbville+1;
    	}
    	else//cas des villes suivantes
    	{
    		scanf("%s",tampon);
    		while(i<*nbville&&existe==0)//boucle de comparaison de chaînes
    		{
    			if(strcmp(tampon,tabville[i])==0)
    			{
    				printf("ERREUR: ville deja enregistree veuillez saisir"
    					"un autre nom : ");
    				existe=1;
    			}
    			else
    			{
    				i++;
    			}
    		}
    		if(existe==0)
    		{
    			strcpy(tabville[*nbville],tampon);
    			printf("ville %s enregistree\n",tabville[*nbville]);
    			*nbville=*nbville+1;
    		}
    	}
    }
     
    void distance(char tabville[NB_VILLES][LONGNOM],int taille)
    {
    	char v1[LONGNOM];//ville 1
    	char v2[LONGNOM];//ville 2
    	int longueur,i=0,j=0,depart=-1,arrivee=-1;
     
    	/*saisie des données*/
    	printf("veuillez saisir la ville de depart : ");
    	scanf("%s",v1);
    	printf("veuillez saisir la ville d'arrivee : ");
    	scanf("%s",v2);
    	printf("veuillez saisir la distance entre les deux villes : ");
    	scanf("%d",&longueur);
     
    	/*recherche du numéro des villes saisies*/
    	while(i<taille&&(depart==-1||arrivee==-1))
    	{
    		if(strcmp(v1,tabville[i])==0)
    		{
    			depart=i;
    		}
    		if(strcmp(v2,tabville[i]==0))
    		{
    			arrivee=i;
    		}
    		i++;
    	}
     
    	/*gestion de la saisie d'une ville inexistante*/
    	if(depart==-1||arrivee==-1)
    	{
    		if(depart==-1)
    		{
    			printf("ERREUR: la ville %s n'a pas ete enregistree\n",v1);
    		}
    		if(arrivee==-1)
    		{
    			printf("ERREUR la ville %s n'a pas ete enregistree\n",v2);
    		}
    	}
     
    	/*ajout des nouveaux chemins*/
    	else
    	{
    		i=0;
    		while(i<NB_CHEMINS&&tchemin[depart][i].ville_suiv!=-1)
    		{
    			i++;
    		}
    		if(i==NB_CHEMINS)
    		{
    			printf("ERREUR: nombre maximum de chemins pour %s atteint\n",v1);
    		}
    		else
    		{
    			tchemin[depart][i].ville_suiv=arrivee;
    			tchemin[depart][i].distance=longueur;
     
    			while(j<NB_CHEMINS&&tchemin[arrivee][j].ville_suiv!=-1)
    			{
    				j++;
    			}
    			if(j==NB_CHEMINS)
    			{
    				printf("ERREUR; nombre maximum de chemins pour %s atteint\n",v2);
    				tchemin[depart][i].ville_suiv=-1;
    				tchemin[depart][i].distance=0;
    				printf("les valeurs par defaut ont ete reinitialisées pour %s\n",v1);
    			}
    			else
    			{
    				tchemin[arrivee][j].ville_suiv=depart;
    				tchemin[arrivee][j].distance=longueur;
    				printf("deux chemins ont ete crees :\n");
    				printf("sens 1: %s-> %s %d km\n",tabville[depart],tabville[arrivee],tchemin[arrivee][j].distance);
    				printf("sens 2: %s-> %s %d km\n",tabville[arrivee],tabville[depart],tchemin[arrivee][j].distance);
    				}
    		}
    	}
    }
     
    	void parcours(char tabville[NB_VILLES][LONGNOM],int taille)
    	{
    		/*initialisation*/
    		int i,chx,prec,longueur=0;
    		system("clear");
    		for(i=0;i<taille;i++)
    		{
    			printf("%d-%s\n",i,tabville[i]);
    		}
    		printf("99-QUITTER\n");
    			printf("choisissez un numero de ville : ");
    		scanf("%d",&chx);
    			if(chx!=99)
    			{
    				while(chx!=99)//boucle de cheminement du parcours
    				{
    					i=0;
    					while(tchemin[chx][i].ville_suiv!=-1)
    					{
    						printf("%d-%s %d km\n",tchemin[chx][i].ville_suiv,tabville[i],tchemin[chx][i].distance);
    						i++;
    					}
    					printf("99-QUITTER\n");
    					printf("%d km parcourus\n",longueur);
    					printf("choisissez un numero de ville : ");
    					prec=chx;
    					scanf("%d",chx);
    					if(chx!=99)
    					{
    						int j=0;
    						while(j<NB_CHEMINS)
    						{
    							j++;
    						}
    						if(j!=NB_CHEMINS)
    						{
    							longueur+=tchemin[prec][j].distance;
    						}
    						else
    						{
    							printf("ERREUR: ville inconnue veuillez selectionner une ville dans le menu\n");
    							chx=prec;
    						}
    					}
    				}
    			}
    	}
    Je pense que c'est à ce niveau que ça coince mais j'aimerais comprendre et aussi l'améliorer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    			else
    			{
    				tchemin[arrivee][j].ville_suiv=depart;
    				tchemin[arrivee][j].distance=longueur;
    				printf("deux chemins ont ete crees :\n");
    				printf("sens 1: %s-> %s %d km\n",tabville[depart],tabville[arrivee],tchemin[arrivee][j].distance);
    				printf("sens 2: %s-> %s %d km\n",tabville[arrivee],tabville[depart],tchemin[arrivee][j].distance);
    				}

  2. #2
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    qu'est ce qui ne fonctionne pas ,

    tu as un problème lors de la compilation ou de l'execution?

  3. #3
    Membre éclairé Avatar de chicabonux
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2007
    Messages : 329
    Par défaut
    A l'exécution ça plante quand je dois donner la distance entre les 2 villes .
    ça devrait me donne 2 sens mais ça plante et ça me met "
    envoyer un rapport à Microsoft "

  4. #4
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    As tu essayé d'utiliser le debugger et de mettre un breakpoint quelques lignes avant que ça plante pour voir le contenu des variable que tu utilise et regarder ce qui se passe?

  5. #5
    Membre éclairé Avatar de chicabonux
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2007
    Messages : 329
    Par défaut
    J'ai beaucoup de mal à utiliser Visual Studio et je ne sais pas du tout utiliser le debugger

  6. #6
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    peux tu verifier que j, et arrivée ont un valeur correcte?
    avec un printf...

  7. #7
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    					
                               /* ... */
                                            printf("99-QUITTER\n");
    					printf("%d km parcourus\n",longueur);
    					printf("choisissez un numero de ville : ");
    					prec=chx;
    					scanf("%d",&chx);
    					if(chx!=99)
                               /* ... */

  8. #8
    Membre éclairé Avatar de chicabonux
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2007
    Messages : 329
    Par défaut
    Merci pour cette remarque . J'ai effectué le changement mais le programme plante toujours au même endroit.
    J'arrive à taper la ville de départ et celle d'arrivée , je tape la distance entre les 2 et le programme plante .
    J'ai essayé de mettre des printf pour j et arrivee dans la fonction distance mais ça plante toujours au même endroit et ça ne m'affiche pas les printf

  9. #9
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    fait un fflush de stdout (eventuellement cela peux venir de arrivée qui n'est pas correct)

  10. #10
    Membre éclairé Avatar de chicabonux
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2007
    Messages : 329
    Par défaut
    Tu peux m'expliquer comment on fait ça ?

  11. #11
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    juste apres le printf tu fais
    fflush(stdout);

    Nom
    fflush - Vider les buffers d'un flux.
    Synopsis
    #include <stdio.h>
    int fflush (FILE *flux);

  12. #12
    Membre éclairé Avatar de chicabonux
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2007
    Messages : 329
    Par défaut
    Voilà ce que j'ai fait mais ça ne fonctionne toujours pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    /*Nom : devoir numéro 9
    Version 1.0
    Auteur:
    Date de dernière mise à jour :14/7/2009
    */
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
     
    #define NB_VILLES 20
    #define NB_CHEMINS 5
    #define LONGNOM 30
     
    struct
    {
    	short ville_suiv;
    	short distance;
    }tchemin[NB_VILLES][NB_CHEMINS];
     
    /*prototypes des fonctions*/
    void ville(int *nbville,char tabville[NB_VILLES][LONGNOM]);
    void distance(char tabville[NB_VILLES][LONGNOM],int taille);
    void parcours(char tabville[NB_VILLES][LONGNOM],int taille);
     
    int main()
    {
    	/*déclaration des variables*/
    	int nbv=0,i,j;
    	short fini=0;char tvilles[NB_VILLES][LONGNOM];
    	char choix[10];
    	char chx;
     
    	/*initialisation du tableau tchemin*/
    	for(i=0;i<NB_CHEMINS;i++)
    	{
    		for(j=0;j<NB_CHEMINS;j++)
    		{
    			tchemin[i][j].ville_suiv=-1;
    			tchemin[i][j].distance=0;
    		}
    	}
     
    	system("clear");
    	while(fini==0)//boucle du menu principal
    	{
    		printf("\tMENU\n");
    		printf("option 1 : Ville\noption 2 : Distance\noption 3: Parcours\nexit\n");
    		printf("votre choix : ");
    		scanf("%s",choix);
    		if(strcmp(choix,"ville")==0||strcmp(choix,"Ville")==0)//option 1=ville
    		{
    			system("clear");
    			printf("vous pouvez saisir un maximum de 20 villes\n");
    			fflush(stdout); 
    			do
    			{
    				ville(&nbv,tvilles);
    				getchar();
    				printf("%d ville(s) saisies\n",nbv);
    				printf("voulez vous continuer ? [O]ui [N]on: ");
    				fflush(stdout); 
    				scanf("%c",&chx);
    			}while(chx!='n'&&chx!='N'&&nbv!=20);
    			chx='O';
     
    		}
    		else if(strcmp(choix,"Distance")==0||strcmp(choix,"distance")==0)/*option 2=
    																		 distance*/
    		{
    			distance(tvilles,nbv);
    		}
    		else if(strcmp(choix,"Parcours")==0||strcmp(choix,"parcours")==0)/*option 3=
    																		 parcours*/
    		{
    			parcours(tvilles,nbv);
    		}
    		else if (strcmp(choix,"exit")==0||strcmp(choix,"Exit")==0)//option 4 fin
    		{
    			printf("Au revoir\n");
    			fini=1;
    		}
    		else//cas d'une erreur de saisie
    		{
    			printf("choix invalide veuillez recommencer\n");
    		}
    	}
    	return EXIT_SUCCESS;
    }
     
    void ville(int *nbville,char tabville[NB_VILLES][LONGNOM])
    {
    	char tampon[LONGNOM];//tampon stockant la chaîne saisie par l'utilisateur
    	int i=0,existe=0;
     
    	printf("saisissez le nom de la ville : ");
    	if(*nbville==0)//cas de la saisie de la première ville
    	{
    		scanf("%s",tabville[*nbville]);
    		printf("ville %s enregistree\n",tabville[*nbville]);
    		*nbville=*nbville+1;
    	}
    	else//cas des villes suivantes
    	{
    		scanf("%s",tampon);
    		while(i<*nbville&&existe==0)//boucle de comparaison de chaînes
    		{
    			if(strcmp(tampon,tabville[i])==0)
    			{
    				printf("ERREUR: ville deja enregistree veuillez saisir"
    					"un autre nom : ");
    				existe=1;
    			}
    			else
    			{
    				i++;
    			}
    		}
    		if(existe==0)
    		{
    			strcpy(tabville[*nbville],tampon);
    			printf("ville %s enregistree\n",tabville[*nbville]);
    			*nbville=*nbville+1;
    		}
    	}
    }
     
    void distance(char tabville[NB_VILLES][LONGNOM],int taille)
    {
    	char v1[LONGNOM];//ville 1
    	char v2[LONGNOM];//ville 2
    	int longueur,i=0,j=0,depart=-1,arrivee=-1;
     
    	/*saisie des données*/
    	printf("veuillez saisir la ville de depart : ");
    	scanf("%s",v1);
    	printf("veuillez saisir la ville d'arrivee : ");
    	scanf("%s",v2);
    	printf("veuillez saisir la distance entre les deux villes : ");
    	scanf("%d",&longueur);
     
    	/*recherche du numéro des villes saisies*/
    	while(i<taille&&(depart==-1||arrivee==-1))
    	{
    		if(strcmp(v1,tabville[i])==0)
    		{
    			depart=i;
    		}
    		if(strcmp(v2,tabville[i]==0))
    		{
    			arrivee=i;
    		}
    		i++;
    	}
     
    	/*gestion de la saisie d'une ville inexistante*/
    	if(depart==-1||arrivee==-1)
    	{
    		if(depart==-1)
    		{
    			printf("ERREUR: la ville %s n'a pas ete enregistree\n",v1);
    		}
    		if(arrivee==-1)
    		{
    			printf("ERREUR la ville %s n'a pas ete enregistree\n",v2);
    		}
    	}
     
    	/*ajout des nouveaux chemins*/
    	else
    	{
    		i=0;
    		while(i<NB_CHEMINS&&tchemin[depart][i].ville_suiv!=-1)
    		{
    			i++;
    		}
    		if(i==NB_CHEMINS)
    		{
    			printf("ERREUR: nombre maximum de chemins pour %s atteint\n",v1);
    		}
    		else
    		{
    			tchemin[depart][i].ville_suiv=arrivee;
    			tchemin[depart][i].distance=longueur;
     
    			while(j<NB_CHEMINS&&tchemin[arrivee][j].ville_suiv!=-1)
    			{
    				j++;
    				printf("%d",j);
    			}
    			if(j==NB_CHEMINS)
    			{
    				printf("ERREUR; nombre maximum de chemins pour %s atteint\n",v2);
    				tchemin[depart][i].ville_suiv=-1;
    				tchemin[depart][i].distance=0;
    				printf("les valeurs par defaut ont ete reinitialisées pour %s\n",v1);
    			}
    			else
    			{
    				tchemin[arrivee][j].ville_suiv=depart;
    				tchemin[arrivee][j].distance=longueur;
    				printf("deux chemins ont ete crees :\n");
    				printf("sens 1: %s-> %s %d km\n",tabville[depart],tabville[arrivee],tchemin[depart][i].distance);
    				fflush(stdout); 
    				printf("sens 2: %s-> %s %d km\n",tabville[arrivee],tabville[depart],tchemin[depart][i].distance);
    				fflush(stdout); 
    			}
     
    		}
    	}
    }
     
    	void parcours(char tabville[NB_VILLES][LONGNOM],int taille)
    	{
    		/*initialisation*/
    		int i,chx,prec,longueur=0;
    		system("clear");
    		for(i=0;i<taille;i++)
    		{
    			printf("%d-%s\n",i,tabville[i]);
    		}
    		printf("99-QUITTER\n");
    			printf("choisissez un numero de ville : ");
    		scanf("%d",&chx);
    			if(chx!=99)
    			{
    				while(chx!=99)//boucle de cheminement du parcours
    				{
    					i=0;
    					while(tchemin[chx][i].ville_suiv!=-1)
    					{
    						printf("%d-%s %d km\n",tchemin[chx][i].ville_suiv,tabville[i],tchemin[chx][i].distance);
    						i++;
    					}
    					printf("99-QUITTER\n");
    					printf("%d km parcourus\n",longueur);
    					printf("choisissez un numero de ville : ");
    					prec=chx;
    					scanf("%d",&chx);
    					if(chx!=99)
    					{
    						int j=0;
    						while(j<NB_CHEMINS)
    						{
    							j++;
    						}
    						if(j!=NB_CHEMINS)
    						{
    							longueur+=tchemin[prec][j].distance;
    						}
    						else
    						{
    							printf("ERREUR: ville inconnue veuillez selectionner une ville dans le menu\n");
    							chx=prec;
    						}
    					}
    				}
    			}
    	}

  13. #13
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    mais arrivée a une valuer correct ou pas?

  14. #14
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    en compilant ton programme avec g++ j'ai
    cd ~/
    g++ TOTO.cpp -o toto
    TOTO.cpp: In function `void distance(char (*)[30], int)':
    TOTO.cpp:149: error: cannot convert `bool' to `const char*' for argument `2' to `int strcmp(const char*, const char*)'

    Compilation exited abnormally with code 1 at Fri Jul 17 18:42:45

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          if(strcmp(v2,tabville[i]==0)) // des parenthèses sont mal placées

  15. #15
    Membre éclairé Avatar de chicabonux
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2007
    Messages : 329
    Par défaut
    ça fonctionne mieux maintenant avec les parenthèses au bon endroit

    Merci.

    Pourquoi sur VS ça me marque ?

    'clear n'est pas reconnue en tant que commande interne ou externe,un programme exécutable ou un fichier de commande

  16. #16
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    probable que vs essaye de lancer la commande clear et qu'elle n'est pas dans le path.

  17. #17
    Membre éclairé Avatar de chicabonux
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2007
    Messages : 329
    Par défaut
    Je peux effacer les lignes du code ?

    Au niveau de la fonction parcours le programme fait n'importe quoi à nouveau

  18. #18
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    non je suppose que quand tu lui demande d'executer ton programme il essaye de faire lancer la commande clear avant dans la fenetre d'execution

    il s'agit d'une commande dos qui sert a effacer ce qu'il y'a dans ta fenetre (dos).

  19. #19
    Membre éclairé Avatar de chicabonux
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    329
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Mai 2007
    Messages : 329
    Par défaut
    Je suis obligé de laisser system clear ou il y a une autre solution ?
    ça fait pas moche quand le programme s'exécute .
    Quand je les enlève du code le programme s'exécute quand même

  20. #20
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    apres tu n'es pas obligé de le lancer depuis studio normalement il te pond un .exe quelque part.

    mais bon je n'utilise pas studio donc je ne peux pas t'aider beaucoup par rapport à ça.

Discussions similaires

  1. [DOM] Code ne fonctionnant pas sur d'autres ordi
    Par Fatjo dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 09/11/2007, 12h23
  2. Réponses: 2
    Dernier message: 30/09/2007, 18h05
  3. mon premier code ne fonctionne pas.
    Par argon dans le forum Langage
    Réponses: 1
    Dernier message: 22/06/2007, 21h06
  4. [MySQL] Mon code ne fonctionne pas correctement
    Par bebas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/02/2007, 13h27
  5. Code ne fonctionne pas !
    Par ddubois dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/03/2006, 17h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo