Bug en C

Résolu
kiback Messages postés 259 Date d'inscription   Statut Membre Dernière intervention   -  
kiback Messages postés 259 Date d'inscription   Statut Membre Dernière intervention   -
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 76 Date d'inscription   Statut Membre Dernière intervention   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 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Pense à structurer ton programme.
Il ne faut pas encombrer le main avec le menu.
0
kiback Messages postés 259 Date d'inscription   Statut Membre Dernière intervention   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 251 Date d'inscription   Statut Membre Dernière intervention   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 259 Date d'inscription   Statut Membre Dernière intervention   39
 
moi non plus ! si qqun pouvait m'aider...
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   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 139 Date d'inscription   Statut Membre Dernière intervention   4
 
scanf("%ld",soustraction2); ->>>scanf("%ld",&soustraction2);
0
kiback Messages postés 259 Date d'inscription   Statut Membre Dernière intervention   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