Problème de boucle Do While
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).
Code:
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");
}
} |
Je pense que ce sont mes conditions qui ne sont pas bonnes... pourtant le while est bien l'inverse logique du "jusqu'à" algorithmique non ?
Merci par avance.
Bonne soirée!