Accueil > Forum > > > > switch case : utilisation de * / + -
switch case : utilisation de * / + -
samedi 25 octobre 2003 à 14:32:20 |
switch case : utilisation de * / + -

did2604
|
Bonjour, Je suis débutant et j'ai un problème sur un programme utilisant l'alternative switch case. En fait, je dois utiliser mon case sur des signes tels que "*" "/" "+" "-", mais je n'y arrive pas. En général, moi je me sers de la structure suivante : switch (choix) { case 1 : instruction; break; case 2 : instruction2; break; } donc en toute logique j'essaie qqchose du style : switch (choix) { case * : instruction; break; case / : instruction2; break; } mais ça ne fonctionne pas... j'ai bien essayé de mettre les * / + - entre ' ' du style '*' '/'... mais ça ne fonctionne pas Quelqu'un aurait-il la solution pour moi ? Merci d'avance.
|
|
samedi 25 octobre 2003 à 14:51:32 |
Re : switch case : utilisation de * / + -

djl
|
switch (choix) { case '*' : instruction; break; case '/' : instruction2; break; }
|
vu que c'est des caracteres
|
|
samedi 25 octobre 2003 à 14:54:52 |
Re : switch case : utilisation de * / + -

Chouchou182
|
Salut  Tout dépend du type de la variable choix mais ça sera en aucun cas case *: instruction Si choix est un char, case '*': devrait marcher Si choix est un char*, if ( !strcmp(choix, "*") ) me semble plus approprié. Met un peu plus de code pour qu'on puisse t'aider plus facilement. A + Chouchou
|
|
samedi 25 octobre 2003 à 15:04:40 |
Re : switch case : utilisation de * / + -

did2604
|
Voici en réponse pour Chouchou (merci de m'avoir répondu :)) le programme en entier qui fonctionne parfaitement si j'attribue des chiffres de 1 à 4 pour les opérations math et que je fais un case 1, case 2, case 3 et case 4. ___________________________________________________________ #include <stdio.h> void main (void) { /* déclaration des variables */ int a,b,op,add,sub,multi,div; float DIV,A,B; /* entrée des données */ printf ("\nEntrer un entier pour 'a' : "); scanf ("%d",&a); printf ("\nEntrer un entier pour 'b' : "); scanf ("%d",&b); printf ("\nEntrer un caractère pour 'op' [ + | - | * | / ]' : "); scanf ("%d",&op); DIV=(float)div; A=(float)a; B=(float)b; /* traitement des données et affichage des résultats */ switch (op) { case '+' : add=a+b; printf ("\na + b = %d\n",add); break; case '-' : sub=a-b; printf ("\na - b = %d\n",sub); break; case '*' : multi=a*b; printf ("\na * b = %d\n",multi); break; case '/' : if (b!=0) { DIV=A/B; printf ("\na / b = %f\n", DIV); } else { printf ("\nErreur, vous avez entre 0 pour 'b' !!\n"); } } } ___________________________________________________________
|
|
samedi 25 octobre 2003 à 15:22:35 |
Re : switch case : utilisation de * / + -

Anacr0x
|
scanf ("%d",&op);
Tu entre ton caractère (une lettre) dans un int (un nombre) ! pas étonnant que ca ne marche pas...
déclare ta variable comme ca char op; tu verras, c tout de suite beaucoup plus facile pour la comparer ;)
|
|
dimanche 26 octobre 2003 à 11:29:32 |
Re : switch case : utilisation de * / + -

did2604
|
Merci de la réponse Anacrox, j'ai effectué le changement comme suit, mais j'ai toujours un problème : lorsque le programme me demande d'entrer le signe de l'opération, il saute les "case" et va direct à la fin, j'avoue ne pas comprendre... ___________________________________________________________ #include <stdio.h> void main (void) { /* déclaration des variables */ int a,b,sub,multi,div,add; char op; /* entrée des données */ printf ("\nEntrer un entier pour 'a' : "); scanf ("%d",&a); printf ("\nEntrer un entier pour 'b' : "); scanf ("%d",&b); printf ("\nEntrer un caractère pour 'op' [ + | - | * | / ]' : "); scanf ("%c",&op); /* traitement des données et affichage des résultats */ switch (op) { case '+' : add=a+b; printf ("\na + b = %d\n",add); break; case '-' : sub=a-b; printf ("\na - b = %d\n",sub); break; case '*' : multi=a*b; printf ("\na * b = %d\n",multi); break; case '/' : if (b!=0) { div=a/b; printf ("\na / b = %d\n", div); } else { printf ("\nErreur, vous avez entre 0 pour 'b' !!\n"); } } } _________________________________________________________
|
|
dimanche 26 octobre 2003 à 12:57:57 |
Re : switch case : utilisation de * / + -

Chouchou182
|
Salut
printf ("\nEntrer un caractère pour op [ + | - | * | / ] : "); fflush(stdin) ; scanf ("%c",&op);
fflush vide le fux spécifié
Chez moi ça marche
A bientôt
Chouchou
|
|
dimanche 26 octobre 2003 à 14:29:49 |
Re : switch case : utilisation de * / + -

did2604
|
Hello Chouchou,
Merci pour ton message, cela fonctionne parfaitement :) Je ne risque plus de l'oublier celui-là, mais on ne m'avait jamais réellement expliqué l'utilité exacte du "fflush", maintenant je le sais :)
Merci également aux autres & à l'exceptionnelle sympathie des gens du forum envers les débutants :) @+
|
|
Cette discussion est classée dans : case, utilisation, break, choix, switch
Répondre à ce message
Sujets en rapport avec ce message
switch ... case [ par didrocks ]
J'ai un problème est mon case:int n=App->run; // dépendant de la partie du programme en cours switch(n); { case 1: // intro { App->BmpDeFond = App->
Petit problem avec switch [ par Darkneon ]
Salut, Mon but est de faire bouger le curseur a l'ecran avec les fleches et d'afficher une lettre a cette position.J'ai le codde suivant.#include &l
Problème de SWITCH [ par EMSIEN ]
Bonjour Voilà J'ai rencontré un problème Lors de l'utilisation d'une instruction switch,D'abord je veux réaliser une fonction permettant de retourner
CASE [ par CHKDSK2K ]
Bonjour, j'ai une variable de type char "choix"; je voudrais utiliser cette variable dans un switch mais il ne veut passwitch(choix){ case 'maison
switch & case [ par DeadStarXt ]
Bonjour,Nous souhaiterions compacter la syntaxe suivante SANS PASSER PAR default :case 'a' : Instructions;break;case 'b' : Instructions;break;case 'c'
Problème switch [ par seleccao ]
Bonjours à tous Pour mon application en c++ je travaille avec de l'hexadecimal et j'utilise un switch switch(n1) { case '0000': hexa1 = "0";break; ca
Problème avec un switch en C [ par alexis69 ]
Alors voilà. J'ai coder un petit code avec un menu. À la fin de mon switch j'ai ajouté l'option default comme ça si une personne tape autre chose que
fonction switch et équivalent [ par gromhouleux ]
Bonjour, en fait je cherche un équivalent à la fonction switch en C++. Je m'explique,Switch permet de faire une action en fonction d'une valeur entiè
menu en c [ par sebz10 ]
bonjour, je voudrais créer un menu en c de façon a ce que quand je selectione un proposition (ex: addition) je puisse en suite additions ou tonber dan
[C] Retour au début du programme [ par thekid06 ]
Bonsoir, Je cherche après chaque execution revenir au début du programme. Comment je peut faire s'il vous plaît ? Voilà ma source : [code=cpp]#includ
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|