Calculatrice en C, problème d'initialisation.

Fermé
Seb - 14 avril 2010 à 16:43
tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 - 14 avril 2010 à 17:08
Bonjour, je cherche à programmer une calculatrice basique ( +, -, *, /), et en cherchant plusieurs heures, j'ai ENFIN réussi à lancer le programme.
L'ennui, c'est que l'initialisation en 0 ne se fait pas !
Je me retrouve donc, si te tape 2 + 3, avec 223434 +32435 = 3245465 ...
Voici ma fonction (avec le switch, pas le if) :


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

int main()

{
int choixCalcul;
int resultat = 0, nombre1 = 0, nombre2 = 0;
printf ("Quel operation voulez-vous faire ?\n\n1. Addition\n\n2. Soustraction\n\n3. Multiplication\n\n4. Division\n\n");
scanf ("%d", &choixCalcul);
switch (choixCalcul)
{
case 1:
printf ("faites votre addition :\n\n");
printf ("Tapez votre premier nombre :\n\n");
scanf ("%d", &nombre1);
printf ("Tapez votre deuxieme nombre :\n\n");
scanf ("%d", &nombre2);
printf ("\n\n");
resultat = nombre1 + nombre2;
printf ("%d + %d = %d", &nombre1, &nombre2, &resultat);
break;
case 2:
printf ("faites votre soustraction :\n\n");
printf ("Tapez votre premier nombre :\n\n");
scanf ("%d", &nombre1);
printf ("Tapez votre deuxieme nombre :\n\n");
scanf ("%d", &nombre2);
printf ("\n\n");
resultat = nombre1 - nombre2;
printf ("%d - %d = %d", &nombre1, &nombre2, &resultat);
break;
case 3:;
printf ("faites votre multiplication :\n\n");
printf ("Tapez votre premier nombre :\n\n");
scanf ("%d", &nombre1);
printf ("Tapez votre deuxieme nombre :\n\n");
scanf ("%d", &nombre2);
printf ("\n\n");
resultat = nombre1 * nombre2;
printf ("%d * %d = %d", &nombre1, &nombre2, &resultat);
break;
case 4:;
printf ("faites votre division:\n\n");
printf ("Tapez votre premier nombre :\n\n");
scanf ("%d", &nombre1);
printf ("Tapez votre deuxieme nombre :\n\n");
scanf ("%d", &nombre2);
printf ("\n\n");
resultat = nombre1 / nombre2;
printf ("%d / %d = %d", &nombre1, &nombre2, &resultat);
break;
default:
printf ("Commande non reconnue\n\n");
break;
}

return 0;
}

Si vous pouvez m'aider, je vous en serais très reconnaisant.

Seb.


A voir également:

1 réponse

tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 121
14 avril 2010 à 17:08
printf ("%d + %d = %d", &nombre1, &nombre2, &resultat);

en fait tu affiches l'adresse de nombre1, nombre2 et resultat plutôt que leur valeur !

il faut écrire :

printf ("%d + %d = %d", nombre1, nombre2, resultat);

dans sacanf() il faut passer les arguments par adresse pour que scanf puisse y placer la valeur lue. printf se sufit d'un passage par référence.
0