Calculette fantaisiste

Résolu
jypill77 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
jypill77 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Bonjour, j'étudie le langage C sur un site et on nous demande d'élaborer une calculette en mode console, voila ce que j'ai fait :
#include <stdio.h>
#include <stdlib.h>

int main()
{

long operation, nombre1, nombre2, resultat;
printf ("==== Opération ===\n");
printf ("1. Addition\n");
printf ("2. Soustraction\n");
printf ("3. Multiplication\n");
printf ("4. Division\n\n");
printf ("Quel est votre choix ?\n");
scanf ("%ld", &operation);
printf ("Entrez le premier nombre\n");
scanf ("%ld", &nombre1);
printf ("Entrez le deuxième nombre\n");
scanf ("%ld", &nombre2);


switch (operation)
{
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 ("Ceci n'est pas une opération");
break;

}
return 0;
}
ca marche mais la calculette donne des chiffres fantaisiste genre 2+3=854698
Où est l'erreur ?
Merci d'avance !
A voir également:

2 réponses

---vivi--- Messages postés 76 Date d'inscription   Statut Membre Dernière intervention   11
 
Salut, tu à mis " après résultat pour l'addition. Ce n'est pas dans le printf que tu doit faire des calcules, le printf se contente d'afficher ce que tu met. Si tu avais initialisé tes variables à zéro( ex: long nombre = 0; )tu aurais vu que la valeur de résultat ne changeait pas. Si tu veux améliorer ta calculatrice, tu peut utiliser double au lieu de long et remplacer %ld par %lf (comme ca, tu pourras calculer les nombres décimaux).
0
jypill77 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai trouvé !
Avant chaque "printf", j'ai mis
resultat = nombre1 +nombre2 !
Et ça marche !
0