Rechercher : dans
Par :

La fonction switch en language c

Dernière réponse le 5 jan 2009 à 11:54:05 virus59300, le 3 nov 2007 à 17:55:44 
 Signaler ce message aux modérateurs

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

Configuration: Windows Vista
Internet Explorer 7.0

Meilleures réponses pour « la fonction switch en language c » dans :
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...
Langage C++ - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...

1

mype, le 3 nov 2007 à 18:22:30
  • +1

Pour eviter que le switch fasse toute les instruction il fo metre des break a la fin de chaque instruction

Répondre à mype

2

nagashima, le 3 nov 2007 à 18:26:15

Il y a sa, mais peux tu etre un peu plus claire ?

Répondre à nagashima

3

mype, le 3 nov 2007 à 18:32:15

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 ");
}

Répondre à mype

4

nagashima, le 3 nov 2007 à 18:33:13

....merci....ce que je te demande, c est ce que tu veux exactement, je ne comprends pas ce que tu veux ;)

Répondre à nagashima

5

virus59300, le 3 nov 2007 à 18:35:29

J'ai mis les break mais il met fait toute les instruction !

Répondre à virus59300

6

nagashima, le 3 nov 2007 à 18:37:44
  • +1

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

Répondre à nagashima

7

mype, le 3 nov 2007 à 18:37:49

Fait un cc de ton programme pour voir stp

Répondre à mype

8

virus59300, le 3 nov 2007 à 18:40:08
  • +1

#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;

}

Répondre à virus59300

9

mype, le 3 nov 2007 à 18:40:36

Non c'est bien des ";" et pas des ","

chez moi sa marche

Répondre à mype

10

nagashima, le 3 nov 2007 à 18:40:51

Je te le redis, avant le break c est des , et non de ;

Répondre à nagashima

11

virus59300, le 3 nov 2007 à 18:41:45

Wé je sais c'est des ; mais sa ne marche pas !!

Répondre à virus59300

12

nagashima, le 3 nov 2007 à 18:41:54

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

Répondre à nagashima

13

virus59300, le 3 nov 2007 à 18:43:47

Sa met des erreur le prog dit qu'il s'atten a des ; et non des , !!

Répondre à virus59300

14

nagashima, le 3 nov 2007 à 18:45:08

C est chelou....et remets des ; mais avec les break a la fin de l instruction (on sait jamais avec ces logi xd)

Répondre à nagashima

15

mype, le 3 nov 2007 à 18:45:25

Je le repete nagashima c'est des ";" ...

Répondre à mype

16

nagashima, le 3 nov 2007 à 18:46:46

^^ d accord d accord, je te crois ( je l utilise rarement xd) je regarde mes cours ...

Répondre à nagashima

17

virus59300, le 3 nov 2007 à 18:46:58

Oui nagashima je viens de vérifier dans mon cours c'est bel et bien des ;

Répondre à virus59300

18

nagashima, le 3 nov 2007 à 18:52:35

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;

}
}

Répondre à nagashima

19

virus59300, le 3 nov 2007 à 18:56:33
  • +1

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 !

Répondre à virus59300
Collection CommentÇaMarche.net