La fonction switch en language c
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
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 ");
} -
BON , les accolades { sont obligatoires dans l'utilisation de la fonction switch ! et terminer toujour les caises pas bREAK ----
-
oui mais s il veut sortir du pgm en faisant 4...sur, si c est la fin du pgm, on s en fout, mais si sa fait parti d une boucle ou si le pgm se prolonge? si c est une boucle, il met une vzaleur...
-
le return 0 est inutile ici il faut reduire au maximum les lignes d'un programme pour eviter les erreur ;)
-
en fait, pour sortir tu pgm, tu fais
case 4 : return 0; break; -
ok merci
-
au niveau des printf du menu tu rajoute
printf("4 : Sortir\n");
et dans le switch tu rajoute
case 4:
break; -
lorsque que tu propse a l'utilisateur
1-entrer 3 nb
2- faire somme
3- sortir
je voudrais savoir comment tu fais pour faire l'action sortir ? -
tu veux un 4eme choix qui permet de sortir du programme sans rien faire c'est ça ?
-
j'ai pas trop compris ta question...
-
ok bah merci beaucoup et quand tu veux demander a un utilisateur de sortir d'un programme c'est quoi la fonction qu'il faut utiliser ?
-
comme dans l'en tete des fonction tu a mis int pour rien retourné faut metre return 0
pour eviter le return 0 dans l'en tete des fonction tu remplace int par void et comme ça tu peux supprimer le return 0 -
quand tu fais return 0 sa veut dire quoi ?
-
je pense que pour plus de clarté tu peux faire tout sa sans pointeur ça devrait marché mais bon c'est toi qui voit...
-
essaye ça j'ai un peu modifier ton programme mais je pense que c'est ça que tu voulais faire(si tu veux des explications sur la maniere que j'ai fait n'hesite pas a me demander...)
#include <stdio.h>
int main()
{
int choix;
int a,b,c;
printf("entrez 3 reels: \n");
scanf("%d""%d""%d",&a,&b,&c);
printf("Menu :\n");
printf("1 : Afficher les 3 reels\n");
printf("2 : Faire somme des 3 reels\n");
printf("3 : Faire multiplication des 3 reels\n");
printf("Votre choix ? ");
scanf("%d", &choix);
switch(choix) {
case 1: afficher(&a,&b,&c);
break;
case 2: somme(&a,&b,&c);
break;
case 3: multiplication(&a,&b,&c);
break;
default:
printf("vous n'avez pas selectionner un menu qui existe ");
}
}
int afficher (int *a,int *b,int *c)
{
printf("afficher les 3 reels saisi: %d %d %d \n",a,b,c);
return (0);
}
int somme(int *a,int *b,int *c)
{
int somme=0;
somme= *a + *b + *c;
printf("la sommes des 3 reels est : %d\n",somme);
return 0;
}
int multiplication(int *a,int *b,int *c)
{
int mu;
mu=(*a)*(*b)*(*c);
printf("la multiplication es trois nombre donne : %d\n",mu);
return 0;
} -
essaye aves avec des if sinon...
-
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 ! -
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;
}
} -
oui nagashima je viens de vérifier dans mon cours c'est bel et bien des ;
-
^^ d accord d accord, je te crois ( je l utilise rarement xd) je regarde mes cours ...
- 1
- 2