did2604
Messages postés29Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention19 août 2008
-
25 oct. 2003 à 14:32
did2604
Messages postés29Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention19 août 2008
-
26 oct. 2003 à 14:29
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.
did2604
Messages postés29Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention19 août 2008 25 oct. 2003 à 15:04
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");
}
}
did2604
Messages postés29Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention19 août 2008 26 oct. 2003 à 11:29
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");
}
did2604
Messages postés29Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention19 août 2008 26 oct. 2003 à 14:29
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 :)
@+