Signaler

La fonction switch en language c [Fermé]

Posez votre question virus59300 65Messages postés jeudi 1 novembre 2007Date d'inscription 15 mai 2009 Dernière intervention - Dernière réponse le 5 janv. 2009 à 11:54 par nagashima
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 
Utile
+7
plus moins
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é ?  
Utile
+5
plus moins
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;

}
}
Utile
+2
plus moins
#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;

}
Utile
+1
plus moins
pour eviter que le switch fasse toute les instruction il fo metre des break a la fin de chaque instruction
Utile
+1
plus moins
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 !
Utile
+1
plus moins
ok merci
Utile
+1
plus moins
en fait, pour sortir tu pgm, tu fais

case 4 : return 0; break;
Utile
+1
plus moins
BON , les accolades { sont obligatoires dans l'utilisation de la fonction switch ! et terminer toujour les caises pas bREAK ----
Utile
+0
plus moins
il y a sa, mais peux tu etre un peu plus claire ?
Utile
+0
plus moins
....merci....ce que je te demande, c est ce que tu veux exactement, je ne comprends pas ce que tu veux ;)
Utile
+0
plus moins
j'ai mis les break mais il met fait toute les instruction !
Utile
+0
plus moins
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
Utile
+0
plus moins
fait un cc de ton programme pour voir stp
Utile
+0
plus moins
non c'est bien des ";" et pas des ","

chez moi sa marche
Utile
+0
plus moins
je te le redis, avant le break c est des , et non de ;
Utile
+0
plus moins
wé je sais c'est des ; mais sa ne marche pas !!
Utile
+0
plus moins
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
Utile
+0
plus moins
sa met des erreur le prog dit qu'il s'atten a des ; et non des , !!
Utile
+0
plus moins
c est chelou....et remets des ; mais avec les break a la fin de l instruction (on sait jamais avec ces logi xd)
Utile
+0
plus moins
je le repete nagashima c'est des ";" ...

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !