La fonction switch en language c

Fermé
virus59300 Messages postés 65 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 15 mai 2009 - 3 nov. 2007 à 17:55
 Utilisateur anonyme - 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
A voir également:

34 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
3 nov. 2007 à 18:32
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
Utilisateur anonyme
3 nov. 2007 à 18:52
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
virus59300 Messages postés 65 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 15 mai 2009 5
3 nov. 2007 à 18:40
#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
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
3 nov. 2007 à 18:22
pour eviter que le switch fasse toute les instruction il fo metre des break a la fin de chaque instruction
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
virus59300 Messages postés 65 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 15 mai 2009 5
3 nov. 2007 à 18:56
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
virus59300 Messages postés 65 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 15 mai 2009 5
3 nov. 2007 à 19:47
ok merci
1
Utilisateur anonyme
3 nov. 2007 à 20:15
en fait, pour sortir tu pgm, tu fais

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

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