La fonction switch en language c
Utilisateur anonyme -
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
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.
-
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 ");
} -
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;
}
} -
#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;
} -
pour eviter que le switch fasse toute les instruction il fo metre des break a la fin de chaque instruction
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 ! -
-
-
BON , les accolades { sont obligatoires dans l'utilisation de la fonction switch ! et terminer toujour les caises pas bREAK ----
-
-
....merci....ce que je te demande, c est ce que tu veux exactement, je ne comprends pas ce que tu veux ;)
-
j'ai mis les break mais il met fait toute les instruction !
-
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 -
fait un cc de ton programme pour voir stp
-
non c'est bien des ";" et pas des ","
chez moi sa marche -
-
-
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 -
sa met des erreur le prog dit qu'il s'atten a des ; et non des , !!
-
c est chelou....et remets des ; mais avec les break a la fin de l instruction (on sait jamais avec ces logi xd)
-
je le repete nagashima c'est des ";" ...
- 1
- 2