Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calcul

erreur

    29 avril 2006 à 16:00:00

    Bonjour à tous

    Voila je suis nouveau sur ce site, et j'pprend le langage C.

    J'apprend avec le compilateur Dev C++

    Si j'entre ce code
    {
    long resultat = 0;
    printf ("5 + 3 = %id", resultat),
    }
    la console me sort = 0

    Qui peut m'aider?

    Et j'ai un d à côté du zéro

    D'avance merci :)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      29 avril 2006 à 16:08:49

      Utilises la balises code pour mettre en forme ton code ;)

      Il y a ici un double problème.
      Déja tu initialises résultat à 0, donc il est logique que quand tu demandes à l'afficher, il soit égal à 0. Il faut faire un calcul dessus.
      Ensuite, le code de format est mauvaise. Tu as mis %id, alors que c'est %ld avec un L minuscule comme dans... louisclem :D
      Ca affiche un d parce que le code i est équivalent à d et qu'il n'y a pas de modiifcateur avant, donc si on met %id c'est comprit comme afficher un int (i) puis le reste ne fait plus parti du format donc il affiche (d). Alors qu'avec un %ld, d est le code d'un entier et le modificateur l indique qu'il est long.

      Donc en résumé, tu peux faire quelque chose comme ça :
      long resultat = 0;
      /* Resultat prend la valeur de l'addition. */
      resultat = 3 + 5;
      /* Affichage, avec un l comme louisclem. */
      printf ("5 + 3 = %ld", resultat),
      • Partager sur Facebook
      • Partager sur Twitter
        29 avril 2006 à 16:09:31

        la sortie est correcte.

        en effet dans le code :


        printf ("5 + 3 = %id", resultat);


        tous ce qui est entre crochet => du texte donc, rien ne changera durant l'affichage.
        si tu veux effectuer un calcul tu doit faire par exemple :


        resultat = 5 + 3;
        printf ("5 + 3 = %ld", resultat),
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          29 avril 2006 à 22:07:19

          tu peux très bien faire

          printf("5 + 3 = %d", 5+3);
          • Partager sur Facebook
          • Partager sur Twitter
            30 avril 2006 à 0:09:19

            Citation : acieroid


            printf("5 + 3 = %d", 5+3);


            Attention %ld pour des valeur de type long et %d pour des valeur de type int
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              30 avril 2006 à 9:06:59

              Citation : Cyril57

              Attention %ld pour des valeur de type long et %d pour des valeur de type int



              5 + 3 peut aussi bien être un int, qu'un long tant qu'il n'est pas stocké dans une variable
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                30 avril 2006 à 11:21:03

                5 + 3 est un int :p
                5 => représentable dans un int.
                3 => pareil
                opérateur + appliqué à 2 int => pas de conversions, expression évaluée en tant qu'int.

                Mais bon, sur la plupart de nos processuers 32 bits, int et long ont la même taille :D
                • Partager sur Facebook
                • Partager sur Twitter
                  30 avril 2006 à 13:11:35

                  Citation : louisclem

                  Mais bon, sur la plupart de nos processuers 32 bits, int et long ont la même taille :D

                  Ce qui ne prouve rien. Ce qui compte c'est la plage de valeurs. Il n'est pas garanti qu'elle soit identique.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Music only !

                  Calcul

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown