Faire un choix (Case, Switch via char)
Phaeris
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je voudrai choisir au début si je veux un multiplication ou une addition par exemple,
comment faire,
Merci de vos réponses, voici le fichier:
(Noter que le choix doit ce faire dans ce dossier, et non dans un .h)
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
int choix;
printf("\n\nCALCULATRICE V.1 - By Phaeris\n\n");
printf("MENU\n\n");
}
{
Addition()
// Addition
int Nombre1;
int Nombre2;
int resultat1;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &Nombre1);
printf("\n\nEntrez le deuxième nombre\n\n");
scanf("%d", &Nombre2);
resultat1 = Nombre1 + Nombre2;
printf("\n\nResultat : %d\n\n", resultat1);
// Addition
}
{
// Soustraction
int Nombre3;
int Nombre4;
int resultat2;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &Nombre3);
printf("\n\nEntrez le deuxième nombre\n\n");
scanf("%d", &Nombre4);
resultat2 = Nombre3 - Nombre4;
printf("\n\nResultat : %d\n\n", resultat2);
// Soustraction
}
{
// Multiplication
int Nombre5;
int Nombre6;
int resultat3;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &Nombre5);
printf("\n\nEntrez le deuxième nombre\n\n");
scanf("%d", &Nombre6);
resultat3 = Nombre5 * Nombre6;
printf("\n\nResultat : %d\n\n", resultat3);
// Multiplication
}
{
// Division
int Nombre7;
int Nombre8;
int resultat4;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &Nombre7);
printf("\n\nEntrez le deuxième nombre\n\n");
scanf("%d", &Nombre8);
resultat4 = Nombre7 / Nombre8;
printf("\n\nResultat : %d\n\n", resultat4);
// Division
}
Je voudrai choisir au début si je veux un multiplication ou une addition par exemple,
comment faire,
Merci de vos réponses, voici le fichier:
(Noter que le choix doit ce faire dans ce dossier, et non dans un .h)
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
int choix;
printf("\n\nCALCULATRICE V.1 - By Phaeris\n\n");
printf("MENU\n\n");
}
{
Addition()
// Addition
int Nombre1;
int Nombre2;
int resultat1;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &Nombre1);
printf("\n\nEntrez le deuxième nombre\n\n");
scanf("%d", &Nombre2);
resultat1 = Nombre1 + Nombre2;
printf("\n\nResultat : %d\n\n", resultat1);
// Addition
}
{
// Soustraction
int Nombre3;
int Nombre4;
int resultat2;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &Nombre3);
printf("\n\nEntrez le deuxième nombre\n\n");
scanf("%d", &Nombre4);
resultat2 = Nombre3 - Nombre4;
printf("\n\nResultat : %d\n\n", resultat2);
// Soustraction
}
{
// Multiplication
int Nombre5;
int Nombre6;
int resultat3;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &Nombre5);
printf("\n\nEntrez le deuxième nombre\n\n");
scanf("%d", &Nombre6);
resultat3 = Nombre5 * Nombre6;
printf("\n\nResultat : %d\n\n", resultat3);
// Multiplication
}
{
// Division
int Nombre7;
int Nombre8;
int resultat4;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &Nombre7);
printf("\n\nEntrez le deuxième nombre\n\n");
scanf("%d", &Nombre8);
resultat4 = Nombre7 / Nombre8;
printf("\n\nResultat : %d\n\n", resultat4);
// Division
}
A voir également:
- Switch char
- Android switch - Accueil - Android
- Smart switch pc - Télécharger - Divers Bureautique
- Switch off - Télécharger - Divers Utilitaires
- Logiciel switch - Télécharger - Conversion & Extraction
- Switch qwerty azerty - Guide
6 réponses
Pourquoi faire aussi compliqué ?
Tu peux passer l'opérateur du calcul en paramètre à une fonction pour faire plus simple, par exemple :
Tu peux passer l'opérateur du calcul en paramètre à une fonction pour faire plus simple, par exemple :
#include <stdio.h> #include <stdlib.h> #include <math.h> double process(double val1,double val2,char op); int main() { double x, y; char op; printf("Premier nombre : "); scanf("%lf", &x); // saisie du 2ème nombre // saisie de l'opérateur printf("%f %c %f = %f\n", x, op, y, process(x,y,op)); return 0; } double process(double val1,double val2,char op) { switch (op) { case '+': return val1 + val2; case '-': return val1 - val2; case '/': return val1 / val2; default: return fmod(val1,val2); // Car dans cet exemple, on travaille sur des flottants donc on doit utiliser fmod } exit(EXIT_FAILURE); }
Bonsoir,
Merci pour cette réponse rapide, peux-tu m'expliquer en détails svp,
car je ne veux pas faire un copier coller sans rien comprendre...
Cependant, je teste ça dans la soirée, je passerai sous linux.
Merci pour cette réponse rapide, peux-tu m'expliquer en détails svp,
car je ne veux pas faire un copier coller sans rien comprendre...
Cependant, je teste ça dans la soirée, je passerai sous linux.
Depuis mon dernier post, j'ai travaillé en C. J'ai ré-écris ma calculette comme ca:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int choix;
printf("\n\n\n\n\n\n\n CALCULATRICE by Phaeris\n");
printf("\n Projet 1\n\n");
printf(" ----> MENU <----");
printf("\n\n Addition...............1\n");
printf("\n Soustraction...........2\n");
printf("\n Multiplication.........3\n");
printf("\n Division...............4\n");
printf("\n\nTapez le numero de votre choix puis appuyez sur [ENTRER].\n");
scanf("%d", &choix);
printf("\n");
switch (choix)
{
case 1:
printf("Addition");
int add1;
int add2;
int add;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &add1);
printf("\n\n+\n\n");
scanf("%d", &add2);
add = add1 + add2;
printf("\n\nEgale : %d\n\n", add);
break;
case 2:
printf("Soustraction");
int sous1;
int sous2;
int sous;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &sous1);
printf("\n\n-\n\n");
scanf("%d", &sous2);
sous = sous1 - sous2;
printf("\n\nEgale : %d\n\n", sous);
break;
case 3:
printf("Multiplication");
int multi1;
int multi2;
int multi;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &multi1);
printf("\n\n*\n\n");
scanf("%d", &multi2);
multi = multi1 * multi2;
printf("\n\nEgale : %d\n\n", multi);
break;
case 4:
printf("Division");
int div1;
int div2;
int div;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &div1);
printf("\n\n/\n\n");
scanf("%d", &div2);
div = div1 / div2;
printf("\n\nEgale : %d\n\n", div);
break;
}
return 0;
}
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int choix;
printf("\n\n\n\n\n\n\n CALCULATRICE by Phaeris\n");
printf("\n Projet 1\n\n");
printf(" ----> MENU <----");
printf("\n\n Addition...............1\n");
printf("\n Soustraction...........2\n");
printf("\n Multiplication.........3\n");
printf("\n Division...............4\n");
printf("\n\nTapez le numero de votre choix puis appuyez sur [ENTRER].\n");
scanf("%d", &choix);
printf("\n");
switch (choix)
{
case 1:
printf("Addition");
int add1;
int add2;
int add;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &add1);
printf("\n\n+\n\n");
scanf("%d", &add2);
add = add1 + add2;
printf("\n\nEgale : %d\n\n", add);
break;
case 2:
printf("Soustraction");
int sous1;
int sous2;
int sous;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &sous1);
printf("\n\n-\n\n");
scanf("%d", &sous2);
sous = sous1 - sous2;
printf("\n\nEgale : %d\n\n", sous);
break;
case 3:
printf("Multiplication");
int multi1;
int multi2;
int multi;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &multi1);
printf("\n\n*\n\n");
scanf("%d", &multi2);
multi = multi1 * multi2;
printf("\n\nEgale : %d\n\n", multi);
break;
case 4:
printf("Division");
int div1;
int div2;
int div;
printf("\n\nEntrez un nombre\n\n");
scanf("%d", &div1);
printf("\n\n/\n\n");
scanf("%d", &div2);
div = div1 / div2;
printf("\n\nEgale : %d\n\n", div);
break;
}
return 0;
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut
Essaye ça, facile et efficace
Essaye ça, facile et efficace
#include <stdio.h> void main () { int a,b,som,dif,pro,choix; float div; do { printf("entrez 2 entiers positifs\n"); scanf("%d",&a); scanf ("%d",&b); } while ((a<0)||(b<0)); som=a+b; dif=a-b; pro=a*b; div= a/b; printf (" menu op arithmetique\n"); printf ("1: a+b , 2:a-b , 3:a*b , 4:a/b , 0:quitter\n"); printf ("entrez votre choix \n"); scanf ("%d",&choix); switch (choix) { case 1: printf("la somme est %d\n",som); break; case 2: dif= printf("la diffirence est %d \n", dif);break; case 3: pro=printf ("le produit est %d \n",pro);break; case 4: div=printf ("le quotion de la division est %f \n",div);break; case 0: printf("au revoire");break; default :printf("erreur");break; } }
1. main() renvoie un int et retourne un 0.
2. C'est dommage de calculer som dif, pro et div dans tous les cas. Autant le calculer dans le switch.
3. dif=printf("...%d\n",dif);
Je vois pas l'intérêt de renvoyer la valeur de printf() dans la variable de calcul...
4. Attention au cas où b=0, cela fait planter le programme.
2. C'est dommage de calculer som dif, pro et div dans tous les cas. Autant le calculer dans le switch.
3. dif=printf("...%d\n",dif);
Je vois pas l'intérêt de renvoyer la valeur de printf() dans la variable de calcul...
4. Attention au cas où b=0, cela fait planter le programme.
t as raison apropos de calculer som dif, pro et div dans tous les cas quand on peut le faire lors du choix. ainsi que pour le cas de b=0. j'ai écris le code vite fais , sans l'optimiser :/ J'avoue je ne suis qu'une débutante :S
mais j'ai pas compris ta 1ere remarque de main () car on l utilise souvent en classe.
mais j'ai pas compris ta 1ere remarque de main () car on l utilise souvent en classe.
mais j'ai pas compris ta 1ere remarque de main () car on l utilise souvent en classe
?
Le fait de que le main retourne un entier est une norme. Je suis d'accord que ça fonctionne avec void main, mais comment savoir si le programme s'est exécuté correctement si tu n'a pas de valeur de retour ?
Fais des tests avec des programmes existants (commande unix par exemple : ls, cd...), tu verras que chacune renvoie 0 si tout s'est bien passé, un entier différent de 0 dans les autres cas.
Il ne faut pas confondre les erreurs de compilation avec les erreurs d'exécutions, ni avec les valeurs de retour. Trois notions différentes.
La norme dit que le prototype du main() sans argument en C est : int main (void), et int main (int argc, char *argv[]) si on souhaite récupérer les arguments.
Et le programme doit se terminer par : return 0; (ou return EXIT_SUCCESS;)
Si les profs t'ont appris en classe : main(). C'est qu'ils sont de l'ancienne génération (pré-ansi) ;-).
La norme dit que le prototype du main() sans argument en C est : int main (void), et int main (int argc, char *argv[]) si on souhaite récupérer les arguments.
Et le programme doit se terminer par : return 0; (ou return EXIT_SUCCESS;)
Si les profs t'ont appris en classe : main(). C'est qu'ils sont de l'ancienne génération (pré-ansi) ;-).
#include<stdio.h>
#include<stdlib.h>
int main()
{
int var1, var2;
void Menu(){
printf("A------------Addition\n");
printf("B------------Soustraction\n");
printf("D------------Division\n");
printf("choisir\n\n");
printf("veuillez entrer la 1ere valeur\n");
scanf("%d", &var1);
printf("veuillez entrer la 2eme valeur\n");
scanf("%d", &var2);
}
char choix;
do{
Menu();
choix=getch();
switch(choix)
{
case 'A':
case 'a':
printf("Addition :%d\n\n",var1+var2);
break;
case 'B':
case 'b':
printf("Soustraction:%d\n \n",var1 - var2);
break;
case 'D':
case 'd':
printf("Division: %d\n \n", var1 / var2);
break;
default :
printf("choix incorrect\n \n");
}
}while(choix!='A'||choix!='B'||choix!='D');
}
#include<stdlib.h>
int main()
{
int var1, var2;
void Menu(){
printf("A------------Addition\n");
printf("B------------Soustraction\n");
printf("D------------Division\n");
printf("choisir\n\n");
printf("veuillez entrer la 1ere valeur\n");
scanf("%d", &var1);
printf("veuillez entrer la 2eme valeur\n");
scanf("%d", &var2);
}
char choix;
do{
Menu();
choix=getch();
switch(choix)
{
case 'A':
case 'a':
printf("Addition :%d\n\n",var1+var2);
break;
case 'B':
case 'b':
printf("Soustraction:%d\n \n",var1 - var2);
break;
case 'D':
case 'd':
printf("Division: %d\n \n", var1 / var2);
break;
default :
printf("choix incorrect\n \n");
}
}while(choix!='A'||choix!='B'||choix!='D');
}