Problème de calcul décimal en C

Fermé
ariuss - 28 sept. 2009 à 12:27
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 29 sept. 2009 à 14:30
Bonjour,
Je suis débutant et j'ai un problème avec ma "calculatrice"...
Voici mon code :

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

int main(int argc, char *argv[])
{
int choixMenu;

printf("Bienvenue dans la calculatrice !\n\n");
printf("Options :\n\n");
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n");
printf("\nQuelle option avez-vous choisie ? ");
scanf("%d", &choixMenu);

printf("\n");





switch (choixMenu)
{
case 1:
printf("Vous avez choisi l'addtion.\n\n");
break;
}
int choixtypeadd;

printf("Types d'addtion : \n\n");
printf("1. Addition avec nombres entiers\n");
printf("2. Addition avec nombres decimaux\n");
printf("\nQuel type d'addtion avez-vous choisi ? ");
scanf("%d",&choixtypeadd);


int nbre1adde = 0;
int nbre2adde = 0;
int resultatadde = 0;

switch (choixtypeadd)
{
case 1:
printf("\nVous avez choisi l'addtion avec nombres entiers\n\n");
printf("Entrez le premier nombre : ",nbre1adde);
scanf("%d",&nbre1adde);
printf("\nEntrez le deuxieme nombre : ",nbre2adde);
scanf("%d",&nbre2adde);
resultatadde = nbre1adde + nbre2adde;
printf("\nLe resultat est : %d",resultatadde);
break;
double nbre1addd = 0;
double nbre2addd = 0;
double resultataddd = 0;
case 2:
printf("\nVous avez choisi l'addtion avec nombres decimaux\n\n");
printf("Entrez le premier nombre : ",nbre1addd);
scanf("%f",&nbre1addd);
printf("\nEntrez le deuxieme nombre : ",nbre2addd);
scanf("%f",&nbre2addd);
resultataddd = nbre1addd + nbre2addd;
printf("\nLe resultat est : %f",resultataddd);
break;
}

printf("\n\n");

return 0;
}

Quand je choisis la première option qui est l'addition et la deuxieme qui est l'addition avec nombres décimaux le calcul me donne un resultat complétement faux.

Si quelqu'un pourrais m'aider ca serais sympa :D

A+ et merci d'avance.
A voir également:

2 réponses

---vivi--- Messages postés 76 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 23 octobre 2009 11
28 sept. 2009 à 17:57
Salut,je ne suis pas sur car je ne sais plus compiler mais il me semble que tu essayes de faire une addition avec des nombres décimaux sur des variables de type int. Essaye plutôt en déclarant des variables de type double
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
29 sept. 2009 à 14:30
idem:
int nbre1adde = 0;

scanf("%f",&nbre1addd);

il faudrait déclarer float nbre1adde = 0;

toi tu crées un type, et tu enregistres des données d'un autre type..

c'est comme si je faisais un dictionnaire "larousse francais", et que je demandais à un chinois de le remplir... equand je le lis, je vois des trucs incohérent, et c'est normal ;)
0