Probleme calculatrice c

Résolu
laraby -  
 salame -
Bonjour,
Je suis un débutant en C et je seche sur ce bout de code pour faire des calculs
le programme est bien compilé mais renvoie une erreur de calculatrice.exe,après demande d'opération
merci d'avance

code c:
#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{
long nombre1 = 0, nombre2 = 0, ChoixMenu = 0, resultat = 0 ;

printf("=== MENU ===\n\n");
printf("1.Addition\n");
printf("2.Soustraction\n");
printf("3.Multiplication\n");
printf("4.Division\n\n");
printf("Votre choix?\n");
scanf("%ld", &ChoixMenu);

printf("\n");

switch(ChoixMenu)
{
case 1:
printf("Entrez le nombre 1:\n");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2:\n");
scanf("%ld", nombre2);

resultat = nombre1 + nombre2;

printf("\n");

printf("%ld + %ld = %ld\n", nombre1, nombre2, resultat);

break;

case 2:
printf("Entrez le nombre 1:\n");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2:\n");
scanf("%ld", nombre2);

resultat = nombre1 - nombre2;

printf("\n");

printf("%ld - %ld = %ld\n", nombre1, nombre2, resultat);

break;

case 3:
printf("Entrez le nombre 1:\n");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2:\n");
scanf("%ld", nombre2);

resultat = nombre1 * nombre2;

printf("\n");

printf("%ld * %ld = %ld\n", nombre1, nombre2, resultat);

break;

case 4:
printf("Entrez le nombre 1:\n");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2:\n");
scanf("%ld", nombre2);

resultat = nombre1 / nombre2;

printf("\n");

printf("%ld / %ld = %ld\n", nombre1, nombre2, resultat);

break;
default:
printf("Cette opération n'existe pas\n");
printf("Entrez les chiffres de 1 a 4\n");

break;
}

system("PAUSE");
return 0;
}
A voir également:

2 réponses

SebManfred Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   128
 
Salut,
dans ton case 2 :
scanf("%ld", nombre2);
tu as oublié un '&' (mais tu as du avoir des problèmes à la compilation, tout au moins un warning, parce que ça, c'est une erreur de typage).
de plus, le résultat de ta division sera-t-il entier forcément?
si il ne l'est pas, il ne faut pas le renvoyer dans un long mais dans un double.
et pour ton choixmenu, vu qu'il ne varie qu'entre 1 et 4, un int fait amplement l'affaire.

en plus, ta section
printf("Entrez le nombre 1:\n");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2:\n");
est répétée dans tous tes case à l'exception du default... tu pourais regrouper le tout pour avoir un code plus lisible, qui teste dans un 1er temps si on a bien un choixmenu entre 1 et 4, et si oui, on demande les nombres et ensuite tu fais ton switch pour faire les calculs.

à+
Seb
0
laraby
 
Salut Seb et merci pour tes remarques j'ai modifié comme tu dis et ça marche
merci
a+
0
salame
 
salut merci pour les consiel suivé votre travaille bon courage
0