Les division décimales
Bouzed
-
dewely-fly -
dewely-fly -
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)
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)
A voir également:
- Les division décimales
- Microsoft skype division - Télécharger - Téléphonie & Visio
- 2 décimales après la virgule excel ✓ - Forum Excel
- Mergefield 2 décimales ✓ - Forum Excel
- Javascript arrondir à 2 décimales - Forum Webmastering
- Arrondir à 2 décimales après la virgule - calculateur javascript ✓ - Forum Javascript
7 réponses
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);
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);
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!)
Voilà, cordialement moi(alias Vincent!)
P.S. : comment tu connais mon nom? XD(sûrement un autre post où j'ai mis mon nom!)
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question