Probleme dans la boucle.

Signaler
Messages postés
2
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
25 octobre 2008
-
Messages postés
2
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
25 octobre 2008
-
Bonjour a tous,
J'aimerais bien a la fin de chaque programme demander a l'utilisateur si il veux, oui ou non recommencer le programme (while), mais quand le rentre 1 (pour continuer) il rentrer pas dans la bonne boucle:

Voici mon code source :

Javascript:Insert_Emoticon('/imgs2/smile_sad.gif');
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

main()
{
int note=0,i,som=0,r,choix;
char q;
float moy;
choix=0;
i=0;
moy=0;


while (choix==0)
{
if(choix!=1)
{

while(note!=-1)

{

printf("Entrer une note : ");
scanf("%d",&note);
if(note<0 && note!=-1 || note>20)
{
printf("Note invalide\n");
}
else
if(note!=-1)
{
som=(som+note);
i++;
}
}
}
moy=som/i;

printf("La moyenne est de %f\n",moy);
printf("Entrer 1 pour quitter le programme, ou 0 pour continuer : ");
scanf("%d",&choix);
}




}
Javascript:Insert_Emoticon('/imgs2/smile_sad.gif');
</conio.h></stdlib.h></stdio.h>

3 réponses

Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
tes printf et scan sont à l'extérieur du while(choix==0), il faut qu'il soit à la fin du while (avant '}' ), remonte-les d'une ligne.
Messages postés
15108
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
30 juillet 2021
97
Bonjour,
Tu oublies de remettre tes variables à 0 après avoir afficher la moyenne.
De plus, tu as un problème si l'utilisateur rentre -1 en 1ère note...

#include <stdio.h>

void main()
{
    int note=0,i=0,som=0,choix=0;
    float moy=0;

    while (choix==0)
    {
        while(note!=-1)
        {
            printf("Entrer une note : ");
            scanf("%d",&note);
            if(note<0 && note!=-1 || note>20)
            {
                printf("Note invalide\n");
                note=0;
            }
            else if(note!=-1)
            {
                som=(som+note);
                i++;
            }
        }
        if (i==0)
        {
            i=1;
        }
        moy=som/i;
        printf("La moyenne est de %f\n",moy);
        printf("Entrer 1 pour quitter le programme, ou 0 pour continuer : ");
        scanf("%d",&choix);
        note=0;
        moy=0;
        som=0;
        i=0;
    }
}

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
2
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
25 octobre 2008

Merci Buno, sa marche nickel.