Mon programme tourne rond ?

jason-live Messages postés 218 Statut Membre -  
loupius Messages postés 789 Statut Membre -
Bonjour, je voudrais savoir si mon programme tourne bien rond ?

Voici le code :

#include <stdio.h>
#include <string.h>


int main()
{
    int nomDePersonnes;
    char MotDePasseDavid[6] = "abc123";
    char MotDePasseJason[5] = "salut";
do
{
    printf (" PROGRAMME By David Et Jason \n\n");
    printf ("1. David \n");
    printf ("2. Jason \n");
    printf ("0. Fin du programme \n");
    printf ("Identifies toi : \n");
    scanf ("%d", &nomDePersonnes);
    printf ("\n\n");

switch (nomDePersonnes)
{

    case 1:
    printf ("vous avez tappe le nombre 1 donc vous vous appelez David \nEntres ton mot de passe pour rentrer dans ta session ?");
    scanf ("%s", &MotDePasseDavid);
    break;
    case 2:
    printf ("vous avez tappe le nombre 2 donc vous vous appelez Jason \nEntres ton mot de passe pour rentrer dans ta session ?");
    scanf ("%s", &MotDePasseJason);
    break;
    case 0:
    printf ("Fin du programme \n");
    break;
    default:
    printf ("vous n'avez pas tappe de nombre correct alors vous n'etes pas dans cette liste \n");
    break;
}
if (strcmp(MotDePasseDavid,"abc123") && strcmp(MotDePasseJason, "salut"))

    {
         printf ("echec de l'authentification\n");
    }
    else
    {
        printf ("mot de passe correct. \nBienvenue dans votre espace perso \n");
    }
}
while(nomDePersonnes != 0);
return 0;
}


--- > si j'ai bien initialisé les valeur des mot de passes au début
--- > je ne comprend pas pourquoi j'ai mi le
 while (nomDePersonnes !=0) 
à la fin

Si vous avez des modifications à faire, faîtes les ;)
Merci

4 réponses

jason-live Messages postés 218 Statut Membre 35
 
up
0
loupius Messages postés 789 Statut Membre 148
 
Ce programme a un air de déjà vu... me trompè-je ???
Si le programme tourne rond rond... c'est à toi de t'en apercevoir; il est simple de tester un programme: il faut lui faire faire tous les cas possibles... et même, si possible, les autres ;-)
Quant au: while(nomDePersonnes != 0); alors là, c'est un cas d'école... mais de mauvaise école !
A l'arrivée sur cette instruction, il y a 2 hypohèses :
- nomDePersonnes vaut zéro: l'instruction ne sert à rien et le programme se poursuit,
- nomDePersonnes ne vaut pas zéro: l'instruction s'exécute sans cesse et le programme tourne en rond !
Quel est donc l'utilité de cette instruction ?
je ne comprend pas pourquoi j'ai mi le while (nomDePersonnes !=0)... et nous non plus !
Bonne continuation.
-
0
jason-live Messages postés 218 Statut Membre 35
 
et oui le programme s'exécute sans cesse a cause du while (nomDePersonne != 0) mais comment faire pour qu'il s'exécute qu'une seule fois ?
0
loupius Messages postés 789 Statut Membre 148
 
Heu, je retire ce que j'ai dit sur le 'while' (je dois dire que ton programme est mal indenté et que je l'ai lu trop rapidement (je n'avais pas bien vu le 'do')).
Finalement, je ne vois pas ce qui l'empêcher de se terminer si on entre '0'.
Bonne nuit.
0