Probleme dans les listes chainèes
Résolu
reggaerai
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je vient de faire une programme qui fait les étapes suivante:
créer la chaine
afficher
donner la langueur
et voir si 2 liste sont identique
j'ai un problème dans la dernière fonction une fois le programme arrive dans cet étape il se bloque voila la fonction : et après c le main < le type de liste c etud>
void ident(etud k,etud j)
{
etud tempo1=k,tempo2=j;
int dif=1;
while(tempo1 && tempo2 && dif==1);
{
if(strcmp(tempo1->nom,tempo2->nom)==0)
{ tempo1=tempo1->suivant;
tempo2=tempo2->suivant;
dif=1;
}
else{dif=0;}
}
if(dif==1){printf("les listes sont identiques ");}
else{printf("les listes ne sont pas identiques ");}
}
et le main le voila
void main()
{
etud yas,meq;
printf("\n charger la liste 1 \n");
lifo(yas);
printf("\n charger la liste 2 \n");
lifo(meq);
printf("\nvoila l'affichage de la liste 1 \n");
afficher(yas);
printf("\nla longueur de cette liste est : %d ",longueur(yas));
printf("\nvoila l'affichage de la liste 2 \n");
afficher(meq);
printf("\nla longueur de cette liste est : %d ",longueur(meq));
ident(yas,meq);
getch();
}
je vient de faire une programme qui fait les étapes suivante:
créer la chaine
afficher
donner la langueur
et voir si 2 liste sont identique
j'ai un problème dans la dernière fonction une fois le programme arrive dans cet étape il se bloque voila la fonction : et après c le main < le type de liste c etud>
void ident(etud k,etud j)
{
etud tempo1=k,tempo2=j;
int dif=1;
while(tempo1 && tempo2 && dif==1);
{
if(strcmp(tempo1->nom,tempo2->nom)==0)
{ tempo1=tempo1->suivant;
tempo2=tempo2->suivant;
dif=1;
}
else{dif=0;}
}
if(dif==1){printf("les listes sont identiques ");}
else{printf("les listes ne sont pas identiques ");}
}
et le main le voila
void main()
{
etud yas,meq;
printf("\n charger la liste 1 \n");
lifo(yas);
printf("\n charger la liste 2 \n");
lifo(meq);
printf("\nvoila l'affichage de la liste 1 \n");
afficher(yas);
printf("\nla longueur de cette liste est : %d ",longueur(yas));
printf("\nvoila l'affichage de la liste 2 \n");
afficher(meq);
printf("\nla longueur de cette liste est : %d ",longueur(meq));
ident(yas,meq);
getch();
}
A voir également:
- Probleme dans les listes chainèes
- Liste déroulante dans excel - Guide
- Listes déroulantes en cascade excel - Guide
- Lister les disques cmd - Guide
- Problème liste de diffusion whatsapp - Guide
- CMD - Lister les disques ✓ - Forum Windows
2 réponses
while(tempo1 && tempo2 && dif==1);
attention au point virgule après le while, ça compile mais ce n'est pas ce que tu veux faire : là tu dis au programme de faire une boucle vide, c'est à dire une infinité de fois une instruction vide, c'est comme si tu avais écrit :
while(tempo1 && tempo2 && dif==1) { ; }
PS : ton compilateur devrait surement t'avoir donné un Warning ici, regarde-le pour le reconnaître et ainsi éviter que tu ne reste de heures bloqué sur cette petite erreur ;) .