Besoin d'aide code source C.

Résolu/Fermé
Fiend - Modifié par le 18/03/2010 à 18:02
 Fiend - 18 mars 2010 à 19:19
Bonjour,

Etant novice dans l'art de la programmation, j'ai crée un petit code source histoire de m'entrainer un peu.Cela dit un petit problème survient mais je ne sais pas comment i remédier!
Je travail sous code::Blocks je programme en C,
Voici le code source :

----------------------------------------------

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

int main() 
{ 
    int choixoperation = 0, nombre1 = 0, nombre2 = 0, resultat = 0, reste = 0; 
    double nombre1Division = 0, nombre2Division = 0, resultatDivision = 0; 

    printf("Calculatrice By Cedric Ischoffen\n\n"); 
    printf("Cette calculatrice ne fait pas les nombres decimaux.\n\n\n"); 

    printf("Choisissez un systeme operatoire :\n\n");
    printf("1. Addition\n"); 
    printf("2. Soustraction\n"); 
    printf("3. Multiplication\n"); 
    printf("4. Division\n"); 
    printf("5. Division euclidienne\n"); 
    printf("6. Division avec reste\n");

    printf("\nVotre choix : "); 
    scanf("%d", &choixoperation); 

    switch (choixoperation) 
    { 
    case 1: 
    printf("\nEntrez nombre 1 : "); 
    scanf("%d", &nombre1); 
    printf("Entrez nombre 2 : "); 
    scanf("%d", &nombre2); 
    resultat = nombre1 + nombre2; 
    printf("%d + %d = %d\n\n", nombre1, nombre2, resultat); 
    break,

    case 2: 
    printf("\nEntrez nombre 1 : "); 
    scanf("%d", &nombre1); 
    printf("Entrez nombre 2 : "); 
    scanf("%d", &nombre2); 
    resultat = nombre1 - nombre2; 
    printf("%d - %d = %d\n\n", nombre1, nombre2, resultat); 
    break; 

    case 3: 
    printf("\nEntrez nombre 1 : "); 
    scanf("%d", &nombre1); 
    printf("Entrez nombre 2 : "); 
    scanf("%d", &nombre2); 
    resultat = nombre1 * nombre2; 
    printf("%d * %d = %d\n\n", nombre1, nombre2, resultat); 
    break; 

    case 4: 
    printf("\nEntrez nombre 1 : "); 
    scanf("%f", &nombre1Division); 
    printf("Entrez nombre 2 : "); 
    scanf("%f", &nombre2Division); 
    resultatDivision = nombre1Division / nombre2Division; 
    printf("%f / %f = %f\n\n", nombre1Division, nombre2Division, resultatDivision); 
    break; 

    case 5: 
    printf("\nEntrez nombre 1 : "); 
    scanf("%d", &nombre1); 
    printf("Entrez nombre 2 : "); 
    scanf("%d", &nombre2); 
    resultat = nombre1 / nombre2; 
    printf("%d / %d = %d\n\n", nombre1, nombre2, resultat); 
    break; 

    case 6: 
    printf("\nEntrez nombre 1 : "); 
    scanf("%d", &nombre1); 
    printf("Entrez nombre 2 : "); 
    scanf("%d", &nombre2); 
    resultat = nombre1 / nombre2, reste = nombre1 % nombre2; 
    printf("%d : %d = %d et le reste est %d\n\n", nombre1, nombre2, resultat, reste); 
    break; 

    default : 
    printf("Choix incorrect"); 
    break; 

    } 


    return 0; 
}


-------------------------------------

Alors le problème est que quant j'utilise l'option Division, tout marche bien sauf le resultat est :

0.000000 : 0.000000 = 1.009766

Alors je pense que 1.009766 c'est les données de la variable qui étais deja la avant^^ donc vous aurez surement pas la même si vous tester donc bref j'aimerais bien que ce programme marche , Je travail en application console sous windows xp.

Cordialement Fiend.
A voir également:

2 réponses

swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
18 mars 2010 à 18:18
dans les printf et scanf des doubles, il faut mettre %lf et non %f
j'ai testé, ca marche
;-)
0
Merci bien^^
0