Petit bleme dans un programme de calculette
Résolu
coleturner
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
Je reste anonyme! -
Je reste anonyme! -
Bonjour,
je suis débutant en programmation et mon prof m'a dit de programmer une "mini calculette" en C et en consol :
voici ce que j'ai fais :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
double ChoixOperation = 0.0, Nombre1 = 0.0, Nombre2 = 0.0, Resultat = 0.0;
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n");
printf("quel est votre opération?");
scanf("%ld", &ChoixOperation);
printf("\n\n");
printf("quel est votre 1er nombre?");
scanf("%ld", &Nombre1);
printf("quel est votre 2er nombre?");
scanf("%ld", &Nombre2);
switch (ChoixOperation)
{
case 1:
printf("%ld + %ld = %ld", Nombre1, Nombre2, Resultat);
break;
case 2:
printf("%ld - %ld = %ld", Nombre1, Nombre2, Resultat);
break;
case 3:
printf("%ld * %ld = %ld", Nombre1, Nombre2, Resultat);
break;
case 4:
printf("%ld / %ld = %ld", Nombre1, Nombre2, Resultat);
break;
default:
printf("désolée il y a une erreur\n\n");
break;
}
system("PAUSE");
return 0;
}
j'ai juste un petit bleme : je ne trouve pas comment dire a l'ordi de trouver le résultat selon la variable ChoixOperation
Est ce que quelqu'un pourrai m'aider svp?
merci
je suis débutant en programmation et mon prof m'a dit de programmer une "mini calculette" en C et en consol :
voici ce que j'ai fais :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
double ChoixOperation = 0.0, Nombre1 = 0.0, Nombre2 = 0.0, Resultat = 0.0;
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n");
printf("quel est votre opération?");
scanf("%ld", &ChoixOperation);
printf("\n\n");
printf("quel est votre 1er nombre?");
scanf("%ld", &Nombre1);
printf("quel est votre 2er nombre?");
scanf("%ld", &Nombre2);
switch (ChoixOperation)
{
case 1:
printf("%ld + %ld = %ld", Nombre1, Nombre2, Resultat);
break;
case 2:
printf("%ld - %ld = %ld", Nombre1, Nombre2, Resultat);
break;
case 3:
printf("%ld * %ld = %ld", Nombre1, Nombre2, Resultat);
break;
case 4:
printf("%ld / %ld = %ld", Nombre1, Nombre2, Resultat);
break;
default:
printf("désolée il y a une erreur\n\n");
break;
}
system("PAUSE");
return 0;
}
j'ai juste un petit bleme : je ne trouve pas comment dire a l'ordi de trouver le résultat selon la variable ChoixOperation
Est ce que quelqu'un pourrai m'aider svp?
merci
A voir également:
- Petit bleme dans un programme de calculette
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Mettre en veille un programme - Guide
- Forcer la fermeture d'un programme - Guide
- Trier du plus petit au plus grand excel - Guide
10 réponses
il faut que tu fasses le calcul avant tes printf
case 1:{ Resultat=Nombre1 + Nombre2; printf("%ld + %ld = %ld", Nombre1, Nombre2, Resultat);} break; case 2:{ Resultat=Nombre1-Nombre1; printf("%ld - %ld = %ld", Nombre1, Nombre2, Resultat);} break; case 3:{ Resultat=Nombre1*Nombre2; printf("%ld * %ld = %ld", Nombre1, Nombre2, Resultat);} break; case 4:{ Resultat=Nombre1/Nombre2; printf("%ld / %ld = %ld", Nombre1, Nombre2, Resultat);} break;
ha ok, et c'est obligé de mettre { au début de chaque case et de la refermer a la fin de chaque printf?
on peut pas l'ouvrire au debut du switch et la refermer a la fin de ce dernier?
on peut pas l'ouvrire au debut du switch et la refermer a la fin de ce dernier?
oui il faut laisser les accollades du switch mais comme tu as plusieurs instructions dans tes case pour chaque case il faut que tu mettes aussi des accolades
ha d'accord.
une derniere question :
qu'est ce qui ne va pas avec le switch? : "switch quantity not an integer"
une derniere question :
qu'est ce qui ne va pas avec le switch? : "switch quantity not an integer"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
il faut que tu definisses ChoixOperation comme un entier et pas un double
et faut changer ton scanf aussi
int ChoixOperation;
et faut changer ton scanf aussi
scanf("%d", &ChoixOperation);
pour la division il te faut des double mais la tu modifies juste la variable ChoixOperation en int les autres variables (Nombre1,etc...) tu les laisses en double donc il y aura pas de problemes pour la division
Salut coleturner,
Je suis désolé, Myle n'a pas raison! Les accolades ne sont pas absolument nécessaires! Désolé Myle: t'as juste voulu aider, je sais... Mais il faut tout tester! Moi, ce que tu as écrit m'a beaucoup surpris, alors j'ai essayé avec, puis sans... et tadaa: Fait executer cela et tu verras:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long operation=0, nombre1=0.0, nombre2=0.0, resultat=0.0;
printf("\n\t=== Calculatrice ===\n\n1 = addition\n\n2 = Soustraction\n\n3 = multiplication\n\n4 = division\n\nQuelle est votre operation?\n\n");
scanf("%ld", &operation);
switch (operation)
{
case 1:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nQuel est votre deuxieme nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 + nombre2;
printf("\n\n %ld + %ld = %ld", nombre1, nombre2, resultat);
break;
case 2:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nQuel est votre deuxieme nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 - nombre2;
printf("\n\n %ld - %ld = %ld", nombre1, nombre2, resultat);
break;
case 3:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nQuel est votre deuxieme nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 * nombre2;
printf("\n\n %ld * %ld = %ld", nombre1, nombre2, resultat);
break;
case 4:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nQuel est votre deuxieme nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 / nombre2;
printf("\n\n %ld / %ld = %ld", nombre1, nombre2, resultat);
break;
default:
printf("\n\nAbruti! Vous ne savez meme pas distinguer 1, 2, 3 et 4 de %ld?!\nLevez le camp: les maths ne sont rien pour vous!\n\n", operation);
break;
}
printf("\n\nC'est la fin de ce miniprogramme!\n\nA bientot!\n\n");
system("PAUSE");
}
Je suis désolé, Myle n'a pas raison! Les accolades ne sont pas absolument nécessaires! Désolé Myle: t'as juste voulu aider, je sais... Mais il faut tout tester! Moi, ce que tu as écrit m'a beaucoup surpris, alors j'ai essayé avec, puis sans... et tadaa: Fait executer cela et tu verras:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long operation=0, nombre1=0.0, nombre2=0.0, resultat=0.0;
printf("\n\t=== Calculatrice ===\n\n1 = addition\n\n2 = Soustraction\n\n3 = multiplication\n\n4 = division\n\nQuelle est votre operation?\n\n");
scanf("%ld", &operation);
switch (operation)
{
case 1:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nQuel est votre deuxieme nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 + nombre2;
printf("\n\n %ld + %ld = %ld", nombre1, nombre2, resultat);
break;
case 2:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nQuel est votre deuxieme nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 - nombre2;
printf("\n\n %ld - %ld = %ld", nombre1, nombre2, resultat);
break;
case 3:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nQuel est votre deuxieme nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 * nombre2;
printf("\n\n %ld * %ld = %ld", nombre1, nombre2, resultat);
break;
case 4:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nQuel est votre deuxieme nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 / nombre2;
printf("\n\n %ld / %ld = %ld", nombre1, nombre2, resultat);
break;
default:
printf("\n\nAbruti! Vous ne savez meme pas distinguer 1, 2, 3 et 4 de %ld?!\nLevez le camp: les maths ne sont rien pour vous!\n\n", operation);
break;
}
printf("\n\nC'est la fin de ce miniprogramme!\n\nA bientot!\n\n");
system("PAUSE");
}
Et pour un programme un peu plus complexe, noublis pas DE DIVERSIFIER LES DIFFERENTES BRANCHES!!!
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long operation=0, nombre1=0.0, nombre2=0.0, resultat=0.0;
printf("\n\t=== Calculatrice ===\n\n1 = addition\n\n2 = Soustraction\n\n3 = multiplication\n\n4 = division\n\nQuelle est votre operation?\n\n");
scanf("%ld", &operation);
switch (operation)
{
case 1:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nQue voulez-vous ajouter a ce nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 + nombre2;
printf("\n\n %ld + %ld = %ld", nombre1, nombre2, resultat);
break;
case 2:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nQue voulez-vous retrancher a ce nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 - nombre2;
printf("\n\n %ld - %ld = %ld", nombre1, nombre2, resultat);
break;
case 3:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nPar combien voulez-vous multiplier ce nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 * nombre2;
printf("\n\n %ld * %ld = %ld", nombre1, nombre2, resultat);
break;
case 4:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nPar combien voulez-vous diviser ce nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 / nombre2;
printf("\n\n %ld / %ld = %ld", nombre1, nombre2, resultat);
break;
default:
printf("\n\nAbruti! Vous ne savez meme pas distinguer 1, 2, 3 et 4 de %ld?!\nLevez le camp: les maths ne sont rien pour vous!\n\n", operation);
break;
}
printf("\n\nC'est la fin de ce miniprogramme!\n\nA bientot!\n\n");
system("PAUSE");
}
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long operation=0, nombre1=0.0, nombre2=0.0, resultat=0.0;
printf("\n\t=== Calculatrice ===\n\n1 = addition\n\n2 = Soustraction\n\n3 = multiplication\n\n4 = division\n\nQuelle est votre operation?\n\n");
scanf("%ld", &operation);
switch (operation)
{
case 1:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nQue voulez-vous ajouter a ce nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 + nombre2;
printf("\n\n %ld + %ld = %ld", nombre1, nombre2, resultat);
break;
case 2:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nQue voulez-vous retrancher a ce nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 - nombre2;
printf("\n\n %ld - %ld = %ld", nombre1, nombre2, resultat);
break;
case 3:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nPar combien voulez-vous multiplier ce nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 * nombre2;
printf("\n\n %ld * %ld = %ld", nombre1, nombre2, resultat);
break;
case 4:
printf("\n\nQuel est votre premier nombre?\n\n");
scanf("%ld", &nombre1);
printf("\n\nPar combien voulez-vous diviser ce nombre?\n\n");
scanf("%ld", &nombre2);
resultat= nombre1 / nombre2;
printf("\n\n %ld / %ld = %ld", nombre1, nombre2, resultat);
break;
default:
printf("\n\nAbruti! Vous ne savez meme pas distinguer 1, 2, 3 et 4 de %ld?!\nLevez le camp: les maths ne sont rien pour vous!\n\n", operation);
break;
}
printf("\n\nC'est la fin de ce miniprogramme!\n\nA bientot!\n\n");
system("PAUSE");
}