IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Problème avec une variable.


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 25
    Points : 18
    Points
    18
    Par défaut Problème avec une variable.
    Pour gagner du temps, j'ai mis les chiffres qui me posent problème en rouge.

    J'ai crée le programme:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(int argc, char *argv[])
    {
        long petitnavire = 2;  
        long tortue = -7;  
        float canardalorange = 1.5;
        printf("Vous avez %ld petit navires\n", petitnavire);
        printf("Il a perdu %ld tortues\n", tortue);
        printf("J'ai mange %lf canard a l orange\n", canardalorange);
        printf("Vous avez %ld tortue et vous avez mange %lf canards a l'orange\n", tortue, canardalorange);
     
        printf("Ah desole, il ne vous reste plus que %ld tortue !\n\n", tortue);
     
      system("PAUSE");      
      return 0;
    }
    Et ça me donne le résultat suivant une fois compilé :

    Vous avez 2 petits navires
    Il a perdu -7 tortues
    J'ai mangé 1.500000 canard a l'orange
    Vous avez -7 tortue et vous avez mange 1.500000 canards a l'orange
    Ah desole, il ne vous reste plus que -7 tortue !

    Appuyez sur une touche pour continuer.


    QUESTION:pourquoi ma variable de 1.5 dans le programme s'affiche 1.500000 dans la compilation?

  2. #2
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Salut,

    Salut, cette question a déjà été abordé souvent...
    Ton problème c'est que tu utilise le spécificateur de format par défaut de la fonction printf pour les float. Si tu veux qu'il n'affiche que deux chiffres après la virgule, essaye par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("J'ai mange %1.2lf canard a l orange\n", canardalorange);
    Tu trouveras toutes les infos sur les spécificateurs dans l'aide de la fonction printf.

    A+.

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    On peut formatter ce qu'écrit printf.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    % [flags] [width] [.prec] [F|N|h|l|L] type_char
    [flags] : justification, présence de signe.
    [width] nombre minimum de caractères affichés, si trop grand, est rempli par ' ' ou '0'.
    [prec] nombre maximum de caractères affichés
    [F|N|h|l|L]	modificateur de taille de l'argument.
    type_char : le type d'argument.
    Donc, puisseque nous voulons juste afficher "1.5", on écrira
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    printf("J'ai mange %.1f canard a l orange\n", canardalorange);
    /*Entre le %. et le f, c'est '1' numérique, pas un 'L' minuscule.*/

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    mabu :
    ...
    [prec] nombre maximum de caractères affichés
    ...
    A préciser que ce champ a un sens différent selon le type_char.
    Par exemple pour type_char désignant un entier, il s'agit du nombre minimum de chiffres affichés; pour les flottants en %f du nombre de chiffres après la virgule, ....

Discussions similaires

  1. problème avec une variable globale(SDL)
    Par rayman77 dans le forum C
    Réponses: 1
    Dernier message: 20/02/2009, 13h20
  2. Problème avec une variable static
    Par Kevin12 dans le forum Général Java
    Réponses: 2
    Dernier message: 05/05/2008, 17h20
  3. problème avec une variable de type string
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/06/2007, 14h53
  4. [PHP-JS] problème avec une variable
    Par schats dans le forum Langage
    Réponses: 14
    Dernier message: 15/04/2007, 13h54
  5. [Javascript] problème avec une variable
    Par creatik dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/09/2006, 18h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo