Programmer une calculatrice
Bonjour les génies.
Je viens vous demander de l'aide. Je veux écrire un programme qui permet à l'utilisateur de revenir au Menu principal après chaque opération de calcul.
Quelle structure de contrôle dois-je utiliser et comment ?????
Je travaille en langage C. Voici mon code :
int main(){ int a,b; int somme, diff; int choix ; printf("Menu principal \n"); printf("1--- Addition \n"); printf("2--- Soustraction \n"); printf("Choisissez une opération : "); scanf("%d", &choix); switch(choix){ case 1 : printf("saisissez les nombres : "); scanf("%d %d", &a, &b); somme = a + b; printf("la somme est : %d \n", somme"); // Quelle structure ou fonction dois-je utiliser ici ? // Ici je veux donner le choix à l'utilisateur de retourner au Menu principal // sans fermer le programme ? break; // ... } return 0; }
- Programmer une calculatrice
- Programmer sms - Guide
- Calculatrice gratuit - Télécharger - Calcul & Conversion
- Programmer mail gmail - Guide
- Installation calculatrice - Télécharger - Calcul & Conversion
- Calculer une moyenne sur excel - Guide
5 réponses
Alors, je reviens de l'au-delà ...
Voici un code très minimal dans lequel je ne fais aucune validation. Il y a de multiples façons d'améliorer ce code.
C'est tout de même la bonne façon d'implémenter une calculatrice.
#include <stdio.h> int main() { int operateur; // Code de l'opérateur. int accumulateur = 0; // Accumulateur while(1) { // Boucle infinie printf("Menu:\n1. Addition\n2. Soustraction\n> "); scanf("%d", &operateur); int nombre; switch(operateur) { case 1: printf("Entrez le nombre à additionner "); scanf("%d", &nombre); accumulateur += nombre; break; case 2: printf("Entrez le nombre à soustraire "); scanf("%d", &nombre); accumulateur -= nombre; break; } printf("Accumulateur: %d\n", accumulateur); } }
On n'est pas forcément là ! Place tout ton code (menu + switch) dans une boucle while par exemple.
while(...) { // menu // validation si requis switch(...) { case 1: // pour l'addition break; case 2: // pour la soustraction break; } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionBonjour,
J'ai un peu nettoyé le fil de discussion et je pense que la réponse #8 de Pierrot répond à la question initiale.
@Pkavalier StatutMembre si tu as besoin de précisions, merci de les demander dans ce même fil de discussion. Dans le doute, je le bascule en résolu.
Si tu veux aller plus loin, il est possible de saisir directement un calcul complet et parenthésé en tenant compte de le cardinalité, de la priorité et de l'associativité de chaque opérateur. Pour cela, on utilise typiquement l'algorithme de Shunting Yard.
Bonne continuation