La fonction switch en language c

virus59300 Messages postés 66 Statut Membre -  
 Utilisateur anonyme -
Bonjour,
je voudrais réaliser un programme qui affiche un menu sair 3 nb,faire l'addition,faire multiplication.
j'arrive a concevoir le programme,mais le probleme est que une fois qu les 3 nb sont saisi je voudrais que le menu se raffiche puis selon l'option chois i il l'exiqste ,c'est en quoi je n'arrive pas !
can you help me ?
merci
Configuration: Windows Vista
Internet Explorer 7.0

34 réponses

  • 1
  • 2
Résumé de la discussion

Le problème central décrit est d'afficher un menu après la saisie de trois nombres et d'exécuter l'option choisie en utilisant un switch correctement, avec l’affichage des opérations telles que l’addition et la multiplication. Les échanges proposent notamment d’entourer chaque cas de switch par des accolades et de placer des break à la fin, afin que chaque option soit isolée et ne défile pas. Plusieurs réponses évoquent aussi la nécessité de boucler l’affichage du menu après l’exécution d’une action, ou de faire retourner une valeur pour quitter proprement l’application. Enfin, des propositions montrent des exemples concrets où le cas 4 sert à sortir, et soulignent que les structures et les retours doivent être cohérents pour éviter les erreurs de syntaxe.

Bobot (l'IA à votre service)
  1. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    par exemple voici comment un switch se fait

    switch(choix_menu) {

    case 1: instruction1;
    break;
    case 2: instruction3;
    break;
    case 3: instruction3;
    break;
    default:
    printf("vous n'aez pas selectionner un menu qui existe ");
    }
    9
  2. Utilisateur anonyme
     
    c t pas pour les ; que je regarde dans mes cours mais pour le reste de la syntaxe, si dev cpp dit erreur alors j admets ma faute ;)

    essayes
    main ()
    {
    int d ;
    int e;
    int f;
    int c;
    int o;

    switch(menu2(c))
    {
    case 1: saisir(&d,&e,&f);
    break;

    case 2 : afficher(&d,&e,&f);
    printf("les nombres saisi sont : %d %d %d \n",d,e,f);
    printf("\n");
    break;

    case 3 : printf("la somme des 3 nombres vaut : %d \n",somme(d,e,f));
    printf("\n");
    break;

    case 4 : printf("la multiplication des 3 nombres vaut : %d \n",multiplication(d,e,f));
    printf("\n");
    break;

    case 5 : printf("vous voulez sortir \n") ;
    break;

    }
    }
    5
  3. virus59300 Messages postés 66 Statut Membre 5
     
    #include<stdio.h>
    #include<stdlib.h>

    int menu(int c)
    {

    int choix;
    while(choix <1 || choix >5 )
    {
    printf("Menu :\n");
    printf("1 : Saisir 3 reels\n");
    printf("2 : Afficher les 3 reels\n");
    printf("3 : Faire somme des 3 reels\n");
    printf("4 : Faire multiplication des 3 reels\n");
    printf("5 : Sortir \n");
    printf("Votre choix ? ");
    scanf("%d", &choix);}
    return (choix);
    }

    int menu2(int c)
    {
    int choix;
    while(choix!=1)
    {

    printf("Menu :\n");
    printf("1 : Saisir 3 reels\n");
    printf("2 : Afficher les 3 reels\n");
    printf("3 : Faire somme des 3 reels\n");
    printf("4 : Faire multiplication des 3 reels\n");
    printf("5 : Sortir \n");
    printf("Votre choix ? ");
    scanf("%d", &choix);}
    return (choix);
    }

    int saisir(int *a,int *b,int *c)
    {
    int choix=1;
    printf("saisir 3 reels \n");
    scanf("%d" "%d" "%d", a , b ,c );
    return (0);
    }

    int afficher (int *a,int *b,int *c)
    {
    int choix=2;
    if(choix=2){
    printf("afficher les 3 reels saisi \n");}
    return ( 0);

    }
    int somme(int a,int b,int c)
    {
    int choix=3;
    int z=0;
    if(choix=3){
    printf("Faire somme des 3 reels\n");
    z=(a+b+c);}
    return (z);
    }

    int multiplication(int a,int b,int c)
    {
    int choix=4;
    int mu;
    if(choix=4){
    printf("Faire multiplication des 3 reels\n");
    mu=a*b*c;}
    return(mu);
    }

    main ()
    {
    int d ;
    int e;
    int f;
    int c;
    int o;

    switch(menu2(c)){
    case 1:
    saisir(&d,&e,&f);
    break;

    case 2 :

    afficher(&d,&e,&f);
    printf("les nombres saisi sont : %d %d %d \n",d,e,f);
    printf("\n"),
    break;

    case 3 :
    printf("la somme des 3 nombres vaut : %d \n",somme(d,e,f));
    printf("\n"),
    break;

    case 4 :
    printf("la multiplication des 3 nombres vaut : %d \n",multiplication(d,e,f));
    printf("\n"),
    break;

    case 5 :
    printf("vous voulez sortir \n")
    break;

    }
    3
  4. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    pour eviter que le switch fasse toute les instruction il fo metre des break a la fin de chaque instruction
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. virus59300 Messages postés 66 Statut Membre 5
     
    pas de changement, je vais manger, je re dans 15min donc si mype ou toi trouve la solution a mon probleme je l'attend
    merci beaucoup !
    1
  7. virus59300 Messages postés 66 Statut Membre 5
     
    ok merci
    1
  8. Utilisateur anonyme
     
    en fait, pour sortir tu pgm, tu fais

    case 4 : return 0; break;
    1
  9. digital-sounds
     
    BON , les accolades { sont obligatoires dans l'utilisation de la fonction switch ! et terminer toujour les caises pas bREAK ----
    1
  10. Utilisateur anonyme
     
    il y a sa, mais peux tu etre un peu plus claire ?
    0
  11. Utilisateur anonyme
     
    ....merci....ce que je te demande, c est ce que tu veux exactement, je ne comprends pas ce que tu veux ;)
    0
  12. virus59300 Messages postés 66 Statut Membre 5
     
    j'ai mis les break mais il met fait toute les instruction !
    0
  13. Utilisateur anonyme
     
    normal c est sa la syntaxe :
    switch(choix_menu) {

    case 1: instruction1 ,break;
    case 2: instruction3,break;
    case 3: instruction3, break;
    default:
    printf("vous n'aez pas selectionner un menu qui existe ");
    }

    avec des , pas de ; entre instruction et break
    0
  14. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    fait un cc de ton programme pour voir stp
    0
  15. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    non c'est bien des ";" et pas des ","

    chez moi sa marche
    0
  16. Utilisateur anonyme
     
    je te le redis, avant le break c est des , et non de ;
    0
  17. virus59300 Messages postés 66 Statut Membre 5
     
    wé je sais c'est des ; mais sa ne marche pas !!
    0
  18. Utilisateur anonyme
     
    le ";" te dis la fin de l instruction, donc le breack est une instruction a parts sans case et ne sert donc a rien. essayes avec des , tu verras^^

    pour une meilleur lisibilitée, met tes break a la suite de l instruction
    0
  19. virus59300 Messages postés 66 Statut Membre 5
     
    sa met des erreur le prog dit qu'il s'atten a des ; et non des , !!
    0
  20. Utilisateur anonyme
     
    c est chelou....et remets des ; mais avec les break a la fin de l instruction (on sait jamais avec ces logi xd)
    0
  21. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    je le repete nagashima c'est des ";" ...
    0
  • 1
  • 2