Afficher un swicth

fatek -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je suis debutant dans la programation en C c est pourquoi je vous demande comment je pourrai afficher le resultat de la commande complete a la fin du programe. Je n'est pas trouver comment afficher la variable switch dans le dernier printf.

merci de votre aide.

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

int main(int argc, char *argv[])

{

    int choixMenu;
printf("=== Menu ===\n\n");
printf("1. Royal Cheese\n");
printf("2. Royal Bacon\n");
printf("3. Royal Deluxe\n");
printf("Quelle est votre choix ?\n");
scanf("%d", &choixMenu);
printf("\n");

switch  (choixMenu)
{
case 1:
    printf("vous avez choisi le Royal Cheese !\n");
    [/download/telecharger-34060311-break break];
case 2:
    printf("vous avez choisi le Royal Bacon !\n");
    break;
case 3:
    printf("vous avez choisi le Royal Deluxe !\n");
    break;
default:
    printf("Entree incorect veuillez resseyer !\n");
    break;
}
int choixAccompagnement;
printf("=== accompagnement ===\n\n");
printf("1. Frites\n");
printf("2. Potatoes\n");
printf("3. Salade\n");
printf("Quelle est votre choix ?\n");
scanf("%d", &choixAccompagnement);
printf("\n");

switch  (choixAccompagnement)
{
case 1:
    printf("vous avez choisi des Frites !\n");
    break;
case 2:
    printf("vous avez choisi des Potatoes !\n");
    break;
case 3:
    printf("vous avez choisi de la salade !\n");
    break;
default:
    printf("Entree incorect veuillez resseyer !\n");
    break;
}
      int choixSauce;
printf("=== Sauces ===\n\n");
printf("1. Ketchup\n");
printf("2. Mayonnaise\n");
printf("3. Deluxe\n");
printf("Quelle est votre choix ?\n");
scanf("%d", &choixSauce);
printf("\n");

switch  (choixSauce)
{
case 1:
    printf("vous avez choisi la sauce ketchup !\n");
    break;
case 2:
    printf("vous avez choisi la sauce Mayannaise !\n");
    break;
case 3:
    printf("vous avez choisi la sauce Deluxe !\n");
    break;
default:
    printf("Entree incorect veuillez resseyer !\n");
    break;
}
    printf("=== Recapitulatif === \n Vous avez commander un %d avec des %d avec la sauce : %d\n",choixMenu ,choixAccompagnement ,choixSauce);
    return 0;
}


EDIT: Ajout de la coloration syntaxique.


3 réponses

Danelectro Messages postés 1737 Date d'inscription   Statut Membre Dernière intervention   371
 
Salut,
choixMenu, choixAccompagnement et choixSauce contiennent des entiers, pas des plats. Tu devrais définir des autres variables (chaine de caractères) qui contiennent l'intitulé de ces plats.
Puis dans les switch, en plus d'afficher "Vous avez choisi blablabla", tu rempli ces variables.
Sinon ça marquera "Vous avez commandé un 1 avec des 3 avec la sauce : 2"
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
au lieu de remplir des variables dans les switchs, fatek pourrait simplement utiliser des tableaux de chaînes de caractères contenant le texte à afficher.

on peut faire comme cela :

#include <stdio.h>

#define NMENUS 3    /* nombre de menus */
#define MAXLEN 15   /* longueur max chaîne de caractères */

int main(void)
{
    char menu[NMENUS][MAXLEN] = { "Royal Cheese", "Royal Bacon",                
        "Royal Deluxe" };
    printf("Menu 2 = %s\n", menu[1]);

    return 0;
}

Cela permet d'automatiser aussi l'affichage du menu.

@fatek : les chaînes de caractères en C sont des tableaux de char (terminés par
'\0'
). Donc un tableau de chaînes de caractères peut être contenu dans un tableau à deux dimensions de chars. En C, les indices des tableaux commencent à zéro. Donc pour accéder au 1er élément, tu utilises l'indice 0, pour le 2ème élément, l'indice 1, etc.

Dal
0
Danelectro Messages postés 1737 Date d'inscription   Statut Membre Dernière intervention   371 > [Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention  
 
J'y ai pensé aussi, mais je ne pense pas que fatek a vu les tableaux, mieux vaut ne pas l'embrouiller. Je reconnais cet exo, il vient du début du cours d'OpenClassrooms.
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
s'il n'a pas vu les tableaux, il n'a pas vu les chaînes de caractères non plus :-)
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Sauf s'il a vu les pointeurs :-p.
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
hehe, fiddy, arrête d'embrouiller fatek ;-)

@fatek, tu es toujours là ? as tu réussi a faire ce que tu souhaitais ?

Dans le pire des cas, avec "les moyens du bord", c'est à dire sans connaissances additionnelles, tu peux refaire 3 switchs à la fin, où tu contrôles de nouveau le contenu de choixMenu, choixAccompagnement et choixSauce déjà saisis pour afficher le texte récapitulatif sous la forme que tu souhaites. Cela fait beaucoup de répétitions de code, et un programmeur C expérimenté ne ferait pas comme cela, mais si c'est ton premier code source en C,... tu peux ... expérimenter :-D
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,
Switch n'est pas une variable mais une instruction. Donc ça n'a pas de sens... Que veux-tu afficher au juste ?
Cdlt
0
fatek
 
j aimerai afficher un récapitulatif de fin commande ou il est ecrit tous ce que le client a commander

merci
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bah c'est ce que vous avez fait.
printf("=== Recapitulatif === \n Vous avez commander un %d avec des %d avec la sauce : %d\n",choixMenu ,choixAccompagnement ,choixSauce); 

Cela ne vous convient pas ?
N'hésitez pas à montrer un exemple de ce que vous souhaitez pour que ce soit plus clair.
Cdlt,
0