Bug ou erreur ?

Résolu
oli5667 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention   -  
oli5667 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai écrit mon code qui est très simple mais les 4 dernières lignes se mettent une après l'autres dans le codes quand je le construit... Pourriez vous m'aidez

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

int main()
{
    puts ("Valeurs initiales : 8 et 2");
    puts ("---------------------------------");
    printf ("Addition : %d\n",        8+2);
    printf ("Soustraction :  %d\n",   8-2);
    printf ("Multiplication : %d\n",  8*2);
    printf ("Division : %d\n",        8/2);
    puts ("---------------------------------");
    puts ("---------------------------------");
    puts ("Valeurs initiales : 8,2 et 7");
    puts ("---------------------------------");
    printf ("Addition : %d\n",        8+2+7);
    printf ("Soustraction :  %d\n",   8-2-7);
    printf ("Multiplication : %d\n",  8*2*7);
    printf ("Division : %d\n",        8/2/7);
    puts ("---------------------------------");
    puts ("---------------------------------");
    puts ("Valeurs initiales : 4.2, 5.4 et 9.21");
    puts ("----------------------------------");
    printf ("Addition : %2.2f",           4.2+5.4+9.21);
    printf ("Soustraction : %2.2f",       4.2-5.4-9.21);
    printf ("Multiplication : %2.4f",     4.2*5.4*9.21);
    printf ("Division : %2.8f",           4.2/5.4/9.21);

    return 0;
}


Je vous rappelle que se sont seulement les 4 dernières lignes (J'utilise Code::Blocks)
Merci d'avance

3 réponses

sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   49
 
Bonjour
Tu as fait de petite erreur dans ton code (les quatre dernières lignes) tu à oublier de faire le retour chariot
 '\n' 
, mais ceci dit la division ne donne pas 0 mais bien 0.571429 avec un cast
 float 
( l'arrondit ) calculatrice = 0,57142857142
à bientôt
Celui qui peut, agit. Celui qui ne peut pas, enseigne. Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien, et les philosophes, qui ne connaissent rien sur tout. G.B Shaw
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Juste pour info, il n'est pas question de float mais de double ici ;-).
0
sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   49
 
Bonjour
D'accord , mais dans le cas d'une simple division c'est souvent le
float
qui est utiliser.
Après rien n'empêche d'utiliser la double précision ou la précision étendue.
à bientôt
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention  
 
Non c'est souvent le double qui est utilisé (1.5 est un double, sinon il faut mettre 1.5f) puis converti en float lorsque le type final est un float.
Ici on calcule un double et il est affiché tel quel (pas de conversion en float)
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
cela vient du standard du C, le C89 dit (3.1.3.1 Floating constants) :

An unsuffixed floating constant has type double. If suffixed by
the letter f or F, it has type float. If suffixed by the letter l
or L, it has type long double.


une constante à virgule est par défaut considérée comme un double.

c'est à distinguer du spécificateur %f de printf, qui a un autre objet, et qui, lui, permet d'afficher un nombre décimal à virgule, ce qui permet d'afficher un double comme un float.


Dal
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
C'est ce que j'ai dit [Dal] ;-)
1.5 est un double, si on veut un float, on met 1.5f.
Pour le printf, c'est c'est que j'ai mis aussi...

D'ailleurs ce n'est pas propre au printf mais à toutes les fonctions à argument variable prenant en paramètre des floats.
0
oli5667 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci beaucoup!!!
0
oli5667 Messages postés 139 Date d'inscription   Statut Membre Dernière intervention   2
 
Vous irez voir mon autre forum car j'ai vraiment besoin d'aide
Il se prénomme " fonction supplémentaire avec "switch"".
Merci d'avance
0