Bonjour à tous,
Etant nouveau sur ce forum et débutant en langage C, je fais appel à votre expérience pour m'aider.
Je cherche (dans le cadre de mes études) à créer un programme qui traite des informations sur des CDs.
La procédure qui me pose problème est celle qui permettrait d'afficher les caractéristiques d'un CD que nous avons dans la liste.
Il se trouve que lorsque je lance le programme, il affiche sans fin les caractéristiques du cd qu'il trouve, comme
si il ne sortait plus de la boucle alors que la condition est validé.
Voici la partie de mon programme qui pose problème (je m'excuse par avance pour la qualité de mon code).
Je pense que ce sont mes conditions qui ne sont pas bonnes... pourtant le while est bien l'inverse logique du "jusqu'à" algorithmique non ?
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 void afficherCD (char titre[40], t_cd liste [], int *nb_cd) { int i=0; //indice correspondant au i-eme cd de ma liste int OK=1; // condition de fin de boucle int R; // résultat de ma fonction strcmp : 0=même titre ; 1=titre différent do { R=strcmp(titre, liste[i].titre); if (R == 0){ OK=1; printf(" %s\n %s\n %d\n %s\n %s\n\n",liste[i].titre, liste[i].artiste, liste[i].annee, liste[i].genre, liste[i].fichier_pochette);//Ensemble des caracteristiques du cd } else i=i+1; OK=0; } while ((i<=*nb_cd)||(OK=!1)); if (OK==0){ printf("CD NON TROUVE\n\n"); } }
Merci par avance.
Bonne soirée!
Partager