Bug en C

Résolu/Fermé
kiback Messages postés 259 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 30 mai 2010 - 31 déc. 2008 à 17:01
kiback Messages postés 259 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 30 mai 2010 - 31 déc. 2008 à 18:48
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;
}
A voir également:

8 réponses

---vivi--- Messages postés 76 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 23 octobre 2009 11
31 déc. 2008 à 18:08
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
31 déc. 2008 à 18:11
Salut,

Pense à structurer ton programme.
Il ne faut pas encombrer le main avec le menu.
0
kiback Messages postés 259 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 30 mai 2010 39
31 déc. 2008 à 18:13
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 dimanche 8 juin 2008 Statut Membre Dernière intervention 8 septembre 2012 6
31 déc. 2008 à 18:19
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 jeudi 1 novembre 2007 Statut Membre Dernière intervention 30 mai 2010 39
31 déc. 2008 à 18:21
moi non plus ! si qqun pouvait m'aider...
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
31 déc. 2008 à 18:22
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 mardi 16 décembre 2008 Statut Membre Dernière intervention 3 avril 2010 4
31 déc. 2008 à 18:41
scanf("%ld",soustraction2); ->>>scanf("%ld",&soustraction2);
0
kiback Messages postés 259 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 30 mai 2010 39
31 déc. 2008 à 18:48
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