Programmatioon en C

Fermé
Savant01 Messages postés 27 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 avril 2010 - 17 juin 2009 à 21:45
mamiemando Messages postés 33468 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 janvier 2025 - 18 juin 2009 à 01:23
Bonjour,
j'essai de faire la programmation d'une calculatrice, mais seulement lorsque j'execute le programme suis son cours normalement mais une foi au niveau de switch [la consol DOS] disparait. j'aimerais savoir le problèm kil ya .
merci de me former


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

int main(int argc, char *argv[])
{
long nombre1,nombre2,resultat, choix;
printf(" BIENVENU DANS L'UNIVERS DES CALCUL!\n\n");// presentation de la calculatrice
printf(" FAITES VOTRE CHOIX S'IL VOUS PLAIS!!\n");
printf(" 1. ADDITION \n");// different choix
printf(" 2. SOUSTRATION \n");
printf(" 3.MULTIPLICATION \n");
printf(" 4.DIVISION \n");
scanf("%ld",&choix);// choix de l'utilisateur
printf(" Entrez deux nombres s'il vous plais puis taper la touche entree!\n");// les 2 nombre s à entrer pour l'operation
scanf("%ld %ld",&nombre1,nombre2);

switch(choix) c'est mon poblème
{
case 1:
resultat=nombre1+nombre2;
printf(" %ld + %ld =%ld \n",nombre1,nombre2,resultat);
break;
case 2:
resultat=nombre1-nombre2;
printf(" %ld - %ld =%ld\n",nombre1,nombre2,resultat);
break;
case 3:
resultat=nombre1*nombre2;
printf("%ld * %ld=%ld\n",nombre1,nombre2,resultat);
break;
case 4:
resultat=nombre1/nombre2;
printf("%ld / %ld=%ld\n",nombre1,nombre2,resultat);
break;
default:
printf("\n\n MAUVAIS CHOIX !!!\n");
break;
}
system("PAUSE");
return 0;
}

2 réponses

azureus33 Messages postés 49 Date d'inscription vendredi 16 janvier 2009 Statut Membre Dernière intervention 7 février 2010 7
17 juin 2009 à 21:57
un switch ne peut avoir que des types entier donc il n'accepte pas les float et double

Oups tu as mis un long autant pour moi je ne sais pas lire

remarque c'est intrigant pourquoi dans tes scanf tu utilise un %ld n'est ce pas %d pour les entier...

après execution du code en mode débuggeur ton problème n'est oas le switch mais le scanf juste avant tu n'a pas mis de & a la deuxième variable

après réflèction %ld doit être pour long entier je n'aime pas le C excuse moi pour mon désintéré pour les language non objet
0
mamiemando Messages postés 33468 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 janvier 2025 7 813
18 juin 2009 à 01:23
Déjà ce serait plutôt &nombre1 et &nombre2 au niveau du scanf.
Ensuite je lirais plutôt les deux nombres 1 par 1.

Je mettrais bien un S à calcul aussi ;-)
Tu peux remplacer :
int main(int argc,char **argv)

par :
int main(void)

... vu que tu n'utilises pas arc et argv.

Enfin, évite les system("PAUSE") qui ne sont pas portable et privilégie plutôt un getchar(); (après avoir vidé le tampon du clavier si nécessaire).

Bonne chance
0