Probleme debutant Dev c++ fonction switch

Résolu/Fermé
ibnking Messages postés 36 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 19 août 2010 - 22 nov. 2007 à 23:23
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 4 avril 2012 à 23:56
Bonjour,
je ne sais pas comment utiliser la fonction switch quelqun pourrait -il mexpliquer et corriger ce programme svp
#include<stdio.h>
int main()
{
int a ;
int b ;
int f ;
char d ;

printf("Saisissez une valeur!");
scanf("%d",&a);
printf("Saisissez une autre valeur!");
scanf("%d",&b);
printf("Quelle opérations voulez vous effectuez?");
scanf("%u",&d);
switch(d) {
case + :{f=a+b} break;
case - :{f=a-b} break;
case * :{f=a*b} break;
case / :{f=a/b) break;
printf("Le resultat est %d",f)

return 0;
}
A voir également:

10 réponses

SINA.L Messages postés 34 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 30 décembre 2007 2
22 nov. 2007 à 23:51
non ton code est faux car les caractere +,-,*,/,sont de type char donc tu doi lire la variable d entant que %c ou %s
0
ibnking Messages postés 36 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 19 août 2010 1
22 nov. 2007 à 23:53
oUI JAI FAIT CELA mais ca ne marche toujours pas

#include<stdio.h>
int main()
{
int a ;
int b ;
int f ;
char d ;

printf("Saisissez une valeur!");
scanf("%d",&a);
printf("Saisissez une autre valeur!");
scanf("%d",&b);
printf("Quelle opérations voulez vous effectuez?");
scanf("%c",&d);
switch(d) {
case + :{f=a+b;} break;
case - :{f=a-b;} break;
case * :{f=a*b;} break;
case / :{f=a/b;) break;
printf("Le resultat est %d",f);

return 0;
}
0
SINA.L Messages postés 34 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 30 décembre 2007 2
22 nov. 2007 à 23:54
attent moi un peu stp
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
23 nov. 2007 à 00:01
voici comment on fait un switch:
switch(choix){
case 1: instruction1; break;
case 2: instruction2; break;
etc....
default: instruction par default;
}

je te conseille de faire un menu avec des printf pour que ton programme soit plus claire
voici ce que ça donne

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a ;
int b ;
int f ;
int choix ;

printf("Saisissez une valeur! ");
scanf("%d",&a);
printf("Saisissez une autre valeur! ");
scanf("%d",&b);
printf("\n");
printf("-----Operation possible--------\n");
printf("1: addition\n");
printf("2: soustraction\n");
printf("3: multiplication\n");
printf("4: division\n");
printf("5: quitter le programme\n");
printf("Quelle opérations voulez vous effectuez? ");
scanf("%d",&choix);

switch(choix) {
    case 1 :f=a+b; break;
    case 2 :f=a-b; break;
    case 3 :f=a*b; break;
    case 4 :f=a/b; break;
    case 5 :{printf("Au revoir\n"); exit(-1);} break;
    default : printf("vous n'avez pas selectionne une operation qui existe\n");}

    printf("Le resultat est %d\n",f);
    printf("\n");
    main();
return 0;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ibnking Messages postés 36 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 19 août 2010 1
23 nov. 2007 à 00:06
Merci beaucoup , mais avec les + , - / * c'est pas possible?
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
23 nov. 2007 à 00:14
oui c'est possible il faut modifier un peu le switch et remplacer le scanf par un getch()

voila ce que ça donne

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a ;
int b ;
int f ;
char choix ;

printf("Saisissez une valeur! ");
scanf("%d",&a);
printf("Saisissez une autre valeur! ");
scanf("%d",&b);
printf("\n");
printf("-----Operation possible--------\n");
printf("1: addition\n");
printf("2: soustraction\n");
printf("3: multiplication\n");
printf("4: division\n");
printf("5: quitter le programme\n");
printf("Quelle operations voulez vous effectuez? ");
choix=getch();

switch(choix) {
    case '+' :f=a+b; break;
    case '-' :f=a-b; break;
    case '*' :f=a*b; break;
    case '/' :f=a/b; break;
    case '5' :{printf("Au revoir\n"); exit(-1);} break;
    default : printf("vous n'avez pas selectionne une operation qui existe\n");}

    printf("Le resultat est %d\n",f);
    printf("\n");
    main();
return 0;
}
0
SINA.L Messages postés 34 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 30 décembre 2007 2
23 nov. 2007 à 00:39
merci mype c t ca le code q j allai lui donner
0
ibnking Messages postés 36 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 19 août 2010 1
23 nov. 2007 à 00:16
LOl merci beaucoup ca marche ouf grand merci
0
yovan786 Messages postés 63 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 16 février 2009 6
23 nov. 2007 à 00:27
salut,

dis toi que a force d'ecrire du code source bien comme il faut sans syntaxe d'erreurs comme des ; manquant tu pourra t'ameliorer.

quand tu utilise des caracteres certainement il faut mettre ces variables entre '' => quote simple
Attention quand tu rentres des valeurs avec scanf tu fais entrée. Ceci implique le caractere retour chariot.
donc tu ne pas mettre ton saisie de caractere apres un autre scanf.

#include<stdio.h>
int main()
{
int a ;
int b ;
int f ;
char d ;
printf("Entrer l'operation que vous voulez effectuer : ");
d = getchar();//ou scanf(%c",&d)
printf("Saisissez une valeur! : ");
scanf("%d",&a);
printf("Saisissez une autre valeur! : ");
scanf("%d",&b);

switch(d) {
case '+' :f=a+b; break;
case '-' :f=a-b; break;
case '*' :f=a*b; break;
case '/' :f=a/b; break;
}
printf("Le resultat est : %d\n",f);

return 0;
}


aller ciao
0
slt je suis un débuton et je débute malle alore je voudré savoire ou je pouré trouvé les comande de dev-c++ pour comancé a programé
0
#include<stdio.h>

int main()

{

//rélaisé par Karim Boumaiza

printf("///////////////////////\n");
printf("une simple calculatrice\n");
printf("///////////////////////\n\n\n\n");

int a,b; char operation ;

x:; //boucle infinie

scanf("%d%s%d",&a,&operation,&b);

switch(operation)

{



case '+':printf("resultat=%d",(long)a+b);
printf("\n\n\n\n\n-------------------\n\n\n\n\n"); goto x;break;

case '-':printf("resultat=%d",a-b);
printf("\n\n\n\n\n-------------------\n\n\n\n\n"); goto x;break;

case '*':printf("resultat=%d",(long)a*b);
printf("\n\n\n\n\n-------------------\n\n\n\n\n"); goto x;break;

case '/':printf("resultat=%0.2f",(float)a/(float)b);
printf("\n\n\n\n\n-------------------\n\n\n\n\n"); goto x;break;

case '%':printf("resultat=%d",a%b);
printf("\n\n\n\n\n-------------------\n\n\n\n\n"); goto x;break;

default :printf("error d'ecriture!\n\n");
printf("Essayez a nouveau!");
printf("\n\n\n\n\n-------------------\n\n\n\n\n"); goto x;break;


}

getch();

}
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
4 avril 2012 à 23:56
Quelle horreur ce code !
0