La fonction switch en language c [Fermé]

virus59300 65 Messages postés jeudi 1 novembre 2007Date d'inscription 15 mai 2009 Dernière intervention - 3 nov. 2007 à 17:55 - Dernière réponse : nagashima 4147 Messages postés samedi 8 septembre 2007Date d'inscription 6 décembre 2017 Dernière intervention
- 5 janv. 2009 à 11:54
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
Afficher la suite 
65Messages postés jeudi 1 novembre 2007Date d'inscription 15 mai 2009 Dernière intervention

35 réponses

mype 2448 Messages postés jeudi 1 novembre 2007Date d'inscription 16 août 2010 Dernière intervention - 3 nov. 2007 à 18:32
+7
Utile
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 ");
}
Cette réponse vous a-t-elle aidé ?  
nagashima 4147 Messages postés samedi 8 septembre 2007Date d'inscription 6 décembre 2017 Dernière intervention - 3 nov. 2007 à 18:52
+5
Utile
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;

}
}
virus59300 65 Messages postés jeudi 1 novembre 2007Date d'inscription 15 mai 2009 Dernière intervention - 3 nov. 2007 à 18:40
+2
Utile
#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;

}
mype 2448 Messages postés jeudi 1 novembre 2007Date d'inscription 16 août 2010 Dernière intervention - 3 nov. 2007 à 18:22
+1
Utile
pour eviter que le switch fasse toute les instruction il fo metre des break a la fin de chaque instruction
virus59300 65 Messages postés jeudi 1 novembre 2007Date d'inscription 15 mai 2009 Dernière intervention - 3 nov. 2007 à 18:56
+1
Utile
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 !
virus59300 65 Messages postés jeudi 1 novembre 2007Date d'inscription 15 mai 2009 Dernière intervention - 3 nov. 2007 à 19:47
+1
Utile
ok merci
nagashima 4147 Messages postés samedi 8 septembre 2007Date d'inscription 6 décembre 2017 Dernière intervention - 3 nov. 2007 à 20:15
+1
Utile
en fait, pour sortir tu pgm, tu fais

case 4 : return 0; break;
digital-sounds - 6 déc. 2008 à 16:56
+1
Utile
BON , les accolades { sont obligatoires dans l'utilisation de la fonction switch ! et terminer toujour les caises pas bREAK ----
nagashima 4147 Messages postés samedi 8 septembre 2007Date d'inscription 6 décembre 2017 Dernière intervention - 3 nov. 2007 à 18:26
0
Utile
il y a sa, mais peux tu etre un peu plus claire ?
nagashima 4147 Messages postés samedi 8 septembre 2007Date d'inscription 6 décembre 2017 Dernière intervention - 3 nov. 2007 à 18:33
0
Utile
....merci....ce que je te demande, c est ce que tu veux exactement, je ne comprends pas ce que tu veux ;)
virus59300 65 Messages postés jeudi 1 novembre 2007Date d'inscription 15 mai 2009 Dernière intervention - 3 nov. 2007 à 18:35
0
Utile
j'ai mis les break mais il met fait toute les instruction !
nagashima 4147 Messages postés samedi 8 septembre 2007Date d'inscription 6 décembre 2017 Dernière intervention - 3 nov. 2007 à 18:37
0
Utile
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
mype 2448 Messages postés jeudi 1 novembre 2007Date d'inscription 16 août 2010 Dernière intervention - 3 nov. 2007 à 18:37
0
Utile
fait un cc de ton programme pour voir stp
mype 2448 Messages postés jeudi 1 novembre 2007Date d'inscription 16 août 2010 Dernière intervention - 3 nov. 2007 à 18:40
0
Utile
non c'est bien des ";" et pas des ","

chez moi sa marche
nagashima 4147 Messages postés samedi 8 septembre 2007Date d'inscription 6 décembre 2017 Dernière intervention - 3 nov. 2007 à 18:40
0
Utile
je te le redis, avant le break c est des , et non de ;
virus59300 65 Messages postés jeudi 1 novembre 2007Date d'inscription 15 mai 2009 Dernière intervention - 3 nov. 2007 à 18:41
0
Utile
wé je sais c'est des ; mais sa ne marche pas !!
nagashima 4147 Messages postés samedi 8 septembre 2007Date d'inscription 6 décembre 2017 Dernière intervention - 3 nov. 2007 à 18:41
0
Utile
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
virus59300 65 Messages postés jeudi 1 novembre 2007Date d'inscription 15 mai 2009 Dernière intervention - 3 nov. 2007 à 18:43
0
Utile
sa met des erreur le prog dit qu'il s'atten a des ; et non des , !!
nagashima 4147 Messages postés samedi 8 septembre 2007Date d'inscription 6 décembre 2017 Dernière intervention - 3 nov. 2007 à 18:45
0
Utile
c est chelou....et remets des ; mais avec les break a la fin de l instruction (on sait jamais avec ces logi xd)
mype 2448 Messages postés jeudi 1 novembre 2007Date d'inscription 16 août 2010 Dernière intervention - 3 nov. 2007 à 18:45
0
Utile
je le repete nagashima c'est des ";" ...
la fonction switch en language c - page 2