Les division décimales

Fermé
Bouzed - 11 mars 2009 à 21:18
 dewely-fly - 8 mai 2011 à 20:55
Bonjour,
j'ai programmé une calculatrice comme test pour voir si j'arrivais à me débrouiller(je suis débutant), mais sur cette calculatrice, je n'arrive pas à faire les reste avec les division(pas de nombre décimaux). J'ai donc essayé avec des variables en double ou bien mettre les %ld en %lf mais ça ne marchait pas... Donc je vous mets mon programme :


====================================================================================


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

int main()
{
long nombre1 = 0, nombre2 = 0, operation = 0, resultat = 0, choix = 0;

printf("============Bienvenue dans ma calculatrice============\n\n\n");
printf("Voici les operations a choix : \n\n\n");
printf("1. Addition\n\n");
printf("2. Soustraction\n\n");
printf("3. Multiplication\n\n");
printf("4. Division\n\n");
printf("5. Modulo\n\n");
printf("Tapez le chiffre correspondant et pressez ENTER : ");
scanf("%ld", &choix);

switch (choix)
{
case 1:
printf("\n\n\n\nVous avez choisi l'addition.\n\n");
break;
case 2:
printf("\n\n\n\nVous avez choisi la soustraction.\n\n");
break;
case 3:
printf("\n\n\n\nVous avez choisi la multiplication.\n\n");
break;
case 4:
printf("\n\n\n\nVous avez choisi la division.\n\n");
break;
case 5:
printf("\n\n\n\nVous avez choisi le reste modulo\n\n");
}

if (choix == 1)
{
printf("Choisissez le premier nombre a additionner : ");
scanf("%ld", &nombre1);
printf("Choisissez le deuxieme nombre a additionner : ");
scanf("%ld", &nombre2);
resultat = nombre1 + nombre2;
printf("\n\nVoici le calcul : %ld + %ld = %ld\n\n\n\n", nombre1, nombre2, resultat);
}

else if(choix == 2)
{
printf("Choisissez le nombre initial : ");
scanf("%ld", &nombre1);
printf("Choisissez le nombre a soustraire : ");
scanf("%ld", &nombre2);
resultat = nombre1 - nombre2;
printf("\n\nVoici le clacul : %ld - %ld = %ld\n\n\n\n", nombre1, nombre2, resultat);
}

else if(choix == 3)
{
printf("Choisissez le premier facteur : ");
scanf("%ld", &nombre1);
printf("Choisissez le deuxieme facteur : ");
scanf("%ld", &nombre2);
resultat = nombre1 * nombre2;
printf("\n\nVoici le calcul : %ld * %ld = %ld\n\n\n\n", nombre1, nombre2, resultat);
}

else if(choix == 4)
{
printf("Choisissez la dividende : ");
scanf("%ld", &nombre1);
printf("Choisissez le diviseur : ");
scanf("%ld", &nombre2);
resultat = nombre1 / nombre2;
printf("Voici le calcul : %ld / %ld = %ld\n\n\n\n", nombre1, nombre2, resultat);
}

else if(choix == 5)
{
printf("Choisissez dividende : ");
scanf("%ld", &nombre1);
printf("Choisissez le diviseur : ");
scanf("%ld", &nombre2);
resultat = nombre1 % nombre2;
printf("Voici le calcul : %ld % %ld = %ld\n\n\n\n", nombre1, nombre2, resultat);
}
else
{
printf("\n\nVous n'avez pas choisi une operation valable!\n\n\n\n");
}

printf("Ce programme a ete cree par Vincent, vous n'avez donc pas le droit de le modifier sans mon accord!\n\n\n\n\n\n");
return 0;
}


====================================================================================


À, et pendant que j'y pense, il y a un truck qui cloche chez mon système de modulo, donc si vous pouviez m'éclairer =) (Il m'affiche ça : 14 %ld = 3 alors que le calcul est 14 % 3 et devrait être égal à 2)

Cordialement, moi (mdr)

7 réponses

ba je ne compren pa ton truc dsl ter une fil ou un ga
2
quesque sa peu te faire mémé
0
mdr
0
Utilisateur anonyme
11 mars 2009 à 21:35
Salut Bouzed (alias Vincent ^^)
Tout d'abord, bravo pour la réalisation de ton programme de calculatrice ! ;)
Qu'entends-tu par "je n'arrive pas à faire le reste avec les divisions". En fait, je crois comprendre que là tu ne parles pas de la division mais bien du modulo, non ? Le modulo marche. Le problème est que tu ne peux pas faire apparaître le signe % dans la console. (c'est normal je te rassure !). En revanche, si tu veux que ton programme affiche la réponse alors je te conseille de mettre ça :

printf("Voici le calcul : %ld", nombre1);
printf(" modulo ");
printf("%ld", nombre2);
printf(" = %ld\n\n\n\n", resultat);

Mais, tu peux encore dire :

printf("Le reste de %ld / %ld est %ld\n", nombre1, nombre2, resultat);



2
Merci de ta réponse, en faites mon problème(celui des divisions, donc le premier) était que je ne pouvais pas faire ça 5.0 / 2.0 = 2.5, car un message d'erreur s'affichait!

Voilà, cordialement moi(alias Vincent!)


P.S. : comment tu connais mon nom? XD(sûrement un autre post où j'ai mis mon nom!)
2
Utilisateur anonyme
11 mars 2009 à 22:12
Au début de ton message (le premier) tu dis que tu as essayé de mettre des doubles et ensuite que comme ça marchait pas, tu as remplacé les %ld par des %lf. Mais à mon avis, tu n'as pas fais les deux en même temps. En tout cas, moi j'ai recréer trois variables juste pour la division :

double nb1Division = 0, nb2Division = 0, resultatDivision = 0;

J'ai aussi écrit ça dans mon code source et ça a très bien marché :

else if(choix == 4)
{
printf("Choisissez la dividende : ");
scanf("%lf", &nb1Division);
printf("Choisissez le diviseur : ");
scanf("%lf", &nb2Division);
resultatDivision = nb1Division / nb2Division;
printf("Voici le calcul : %lf / %lf = %lf\n\n\n\n", nb1Division, nb2Division, resultatDivision);


Tiens je viens de voir une petite erreur dans ton programme (pas grave en fait) : tu a oublié de supprimer la variable opération. Elle ne te sert à rien, je crois.

PS : Lol, si je connais ton nom, c'est parce que tu l'a mis dans le programme tout simplement.
2

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

Posez votre question
Désolé de ne pas avoir mis résolu plus tôt, j'étais malade ;-)
2
Mdr mais quel con je fais!

Bon je vais essayer de faire comme tu as dis et après je vais dodo!(ya école demain!)

Tchao et merci de ton aide!
1
Utilisateur anonyme
11 mars 2009 à 22:29
Ok ! N'oublies pas de mettre le sujet en résolu ;)
@++ sur les forums !
1