Aide pour du codage

Résolu/Fermé
Veriditas Messages postés 162 Date d'inscription lundi 29 octobre 2012 Statut Membre Dernière intervention 22 juillet 2016 - 29 oct. 2012 à 18:51
Veriditas Messages postés 162 Date d'inscription lundi 29 octobre 2012 Statut Membre Dernière intervention 22 juillet 2016 - 30 oct. 2012 à 09:14
Bonjour à vous tous ! :)
Voilà, j'ai décidé aujourd'hui de me remettre à la programmation. Pour bien reformer mes bases, je travaille le C pour ensuite dévier sur du C# .NET ou Java.
Je suis le tutoriel de M@teo sur https://openclassrooms.com/fr/ J'en suis au moment du Menu Mc Donald (https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c
J'y arrive très bien mais j'essaie de développer mon programme au delà de ce qu'il propose.
En fait, j'aimerai que le programme demande de nouveau le choix de Commande quand celui-ci est différent de 1, 2, 3 et 4 et je n'y arrive pas ! J'ai essayé de nombreuses techniques ! Je sais bien entendu utiliser les boucles mais là, ça vient pas...

Voici ce que j'ai fait :

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int VotreChoix;

    // On affiche le menu

    printf("=== Menu ===\n");
    printf("\t1. Royal Cheese\n");
    printf("\t2. Mc Deluxe\n");
    printf("\t3. Mc Bacon\n");
    printf("\t4. Big Mac\n");
    printf("Quel est votre choix ?\n");

    scanf("%d", &VotreChoix); //On demande le choix

    printf("\n");

    if (VotreChoix == 1) //Lorsque le nombre saisis est 1
    {
        printf("Votre choix est le Royal Cheese. Bon appetit !");
    }
    else if (VotreChoix == 2) //Lorsque le nombre saisis est 2
    {
        printf("Votre choix est le Mc Deluxe. Bon appetit !");
    }
    else if (VotreChoix == 3) //Lorsque le nombre saisis est 3
    {
        printf("Votre choix est le Mc Bacon. Bon appetit !");
    }
    else if (VotreChoix == 4) //Lorsque le nombre saisis est 4
    {
        printf("Votre choix est le Big Mac. Bon appetit !");
    }
    else //Lorsque le nombre saisis est faux
    {
        while (VotreChoix != 1,2,3,4) //On dit que le nombre et faux et demande de nouveau le nombre tant qu'il est faux
        {
            printf("Vous n'avez pas rentre un bon choix de commande. Reessayez...\n");
            scanf("%d", &VotreChoix);
        }

    }

    printf("\n\n");

    return 0;
}


Lorsque je l'exécute et que j'inscrit un nombre faux, il me dit le que le nombre est faux et me demande de nouveau le nombre. Et si par la suite j'inscris un nombre juste, il me dit encore une fois que c'est faux...

Merci d'avance,

Veriditas !

3 réponses

[Dal] Messages postés 6193 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 4 juillet 2024 1 090
Modifié par [Dal] le 29/10/2012 à 19:34
Salut Veriditas,

while (VotreChoix != 1,2,3,4) est faux.

On peut faire, par exemple :

while ( (VotreChoix != 1) && (VotreChoix != 2) && (VotreChoix != 3) && (VotreChoix != 4) )

Cela dit, ta boucle est mal placée, car elle ne va pas aboutir à l'évaluation du résultat de la saisie corrigée.


Dal
0
Veriditas Messages postés 162 Date d'inscription lundi 29 octobre 2012 Statut Membre Dernière intervention 22 juillet 2016 10
29 oct. 2012 à 20:19
Ah merci ! C'est sur ca que j'avais un enorme doute ! Je revois entierement le code demain, ca va me debloquer des choses ca ! Je te tiens au courant, merci beaucoup :D
0
Veriditas Messages postés 162 Date d'inscription lundi 29 octobre 2012 Statut Membre Dernière intervention 22 juillet 2016 10
30 oct. 2012 à 09:14
Ca y est, j'ai réussi ! Merci à [Dal] pour son aide !
Pour ceux que ça intéresse :

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int VotreChoix;

    // On affiche le menu

    printf("=== Menu ===\n");
    printf("\t1. Royal Cheese\n");
    printf("\t2. Mc Deluxe\n");
    printf("\t3. Mc Bacon\n");
    printf("\t4. Big Mac\n");
    printf("Quel est votre choix ?\n");

    scanf("%d", &VotreChoix); //On demande le choix

    printf("\n");

    while ( (VotreChoix != 1) && (VotreChoix != 2) && (VotreChoix != 3) && (VotreChoix != 4)) //Tant que cesy faux...
    {
        printf("Vous avez rentre un mauvais choix de commande. Reessayez...\n"); //On le dit...
        scanf("%d", &VotreChoix); //Et on redemande la commande
        printf("\n");
    }

    if (VotreChoix == 1) //Lorsque le nombre saisis est 1
    {
        printf("Votre choix est le Royal Cheese. Bon appetit !");
    }
    else if (VotreChoix == 2) //Lorsque le nombre saisis est 2
    {
        printf("Votre choix est le Mc Deluxe. Bon appetit !");
    }
    else if (VotreChoix == 3) //Lorsque le nombre saisis est 3
    {
        printf("Votre choix est le Mc Bacon. Bon appetit !");
    }
    else if (VotreChoix == 4) //Lorsque le nombre saisis est 4
    {
        printf("Votre choix est le Big Mac. Bon appetit !");
    }

    printf("\n\n");

    return 0;
}
0