Bug en C

Résolu
kiback Messages postés 285 Statut Membre -  
kiback Messages postés 285 Statut Membre -
Bonjour,
je suis débutant en programmation (2eme jour !!!) et je me suis fait un petit programme, une calculatrice sous DOS.
Il y a la multiplication, l'addition et la soustraction, seulement la soustraction ne fonctionne pas! Est-ce que vous pourriez m'aider ? Je travaille sous Dev++.

Je voudrais également ajouter la division; quel type donner à ses variable?
Mercimerci!

Voila le code: (désolé ça rend pas bien)

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

int main(int argc, char *argv[])
{
//en dessous c'est la déclaration des variables
long choix=0,addition1=0,addition2=0,soustraction1=0,soustraction2=0,multiplication1=0,multiplication2=0,resultat1=0,resultat2=0,resultat3=0;
printf("MENU PRINCIPAL\n\n"); //Là c'est le menu
printf("1.Addition\n\n");
printf("2.Soustraction\n\n");
printf("3.Multiplication\n\n\n");
printf("Faites un choix puis appuyez sur entree\n");
printf("Attention! Les nombre decimaux ne sont pas autorises!\n\n");
scanf("%ld",&choix); //La séléction du mode

switch(choix)
{
case 1: //1er cas : l'addition
printf("Entrez le 1er nombre\n\n"); //1er nombre
scanf("%ld",&addition1); //scan du nombre
printf("Entrez le 2eme nombre\n\n"); //2eme
scanf("%ld",&addition2); //scan
resultat1=addition1+addition2;
printf("%ld+%ld=%ld\n\n",addition1,addition2,resultat1);
break;
case 2: //2eme cas : la fameuse soustraction
printf("Entrez le 1er nombre\n\n");
scanf("%ld",&soustraction1);
printf("Entrez le 2eme nombre\n\n");
scanf("%ld",soustraction2);
resultat2=soustraction1-soustraction2;
printf("%ld-%ld=%ld\n\n",soustraction1,soustraction2,resultat2);
break;

case 3: //3eme cas : la multiplication
printf("Entrez le 1er nombre\n\n");
scanf("%ld",&multiplication1);
printf("Entrez le 2eme nombre\n\n");
scanf("%ld",&multiplication2);
resultat3=multiplication1*multiplication2;
printf("%ldX%ld=%ld\n\n",multiplication1,multiplication2,resultat3);
break;
default: //Au cas où qu'on se serait planté
printf("Erreur. Tapez 1,2 ou 3\n");
break;
}
system("PAUSE"); //fermeture du prog
return 0;
}

8 réponses

---vivi--- Messages postés 83 Statut Membre 11
 
Salut ton code est un peu long tu pourrais le raccourcir par exemple comme tu as fait un switch tu pourrais n'utiliser que deux variables .Tu pourrais aussi travailler sur des nombres décimaux pour ça y faut remplacer long par double et %ld par %lf

@+
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

Pense à structurer ton programme.
Il ne faut pas encombrer le main avec le menu.
0
kiback Messages postés 285 Statut Membre 39
 
d'accord, merci de vos conseils, je vais essayer d'améliorer ça! et merci d'avoir répondu aussi vite!
0
mogrande Messages postés 272 Statut Membre 6
 
J'ai vérifié la soustraction, je n'arrive pas à cerner le problème...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kiback Messages postés 285 Statut Membre 39
 
moi non plus ! si qqun pouvait m'aider...
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Re,

Si jamais tu n'auras pas une réponse, je te ferai un petit exemple plus tard ;-)
0
sadektlili Messages postés 165 Statut Membre 4
 
scanf("%ld",soustraction2); ->>>scanf("%ld",&soustraction2);
0
kiback Messages postés 285 Statut Membre 39
 
merci sadektlili, ça remarche maintenant !! merci à tous pour vos conseils ! comme quoi, il suffit de pas grand chose...
et voilà que naît la version 2.0 ! lol

& BONNE ANNEE A TOUS!!!
0