Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un exercice de routine qui a mal tourné...

<<J'ai tous essayer, mais ca fonctionne toujours pas...>>(avec pow ou type de variable)

Sujet résolu
    26 janvier 2007 à 4:43:51

    Bonjour,

    je suis en train de me faire un petit programme dans le but de tester mes compétence et être sur d'avoir compris la matière des tutos. ^^

    À ce que je vois on dirai que non car, il y a toujour <span class="rouge">un erreur dans les résultats de mon addition et de ma puissance</span>. J'ai essayer de changer <span class="olive">le type de variable en long</span>, mais le résultat de la puissance de 5 donne 24 o_O mais de 6 donne 36. :euh:

    Alors je ne sais pas <span class="bleu">ce qui ne fonctionne pas</span>.
    Pouvez vous m'aider. :'(

    Voici le code source de mon fichier :
    <span class="code">Code : C</span><div class="code2 c"><span class="co2">#include <stdio.h></span><br />
    <span class="co2">#include <stdlib.h></span><br />
    <span class="co2">#include <math.h></span><br />
    <br />
    <span class="kw4">int</span> main<span class="br0">(</span><span class="kw4">int</span> argc, <span class="kw4">char</span> *argv<span class="br0">[</span><span class="br0">]</span><span class="br0">)</span><br />
    <span class="br0">{</span><br />
    <br />
    <span class="kw4">long</span> nombreDeVies = <span class="nu0">0</span>;<br />
    nombreDeVies = <span class="nu0">5</span>;<br />
    <br />
    <span class="kw4">long</span> age = <span class="nu0">0</span>;<br />
    <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">(</span><span class="st0">"Dite-moi votre age ? "</span><span class="br0">)</span>;<br />
    scanf<span class="br0">(</span><span class="st0">"%ld"</span>, &age<span class="br0">)</span>;<br />
    <br />
    <span class="kw4">double</span> resultat = <span class="nu0">0</span>;<br />
    <span class="kw4">double</span> nombre1 = <span class="nu0">0</span>;<br />
    <span class="kw4">double</span> nombre2 = <span class="nu0">0</span>;<br />
    <span class="kw4">double</span> nombre3 = <span class="nu0">0</span>;<br />
    <br />
    <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">(</span><span class="st0">"Bonjour<span class="es0">\</span>n"</span><span class="br0">)</span>;<br />
    <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">(</span><span class="st0">"Vous avez %ld ans et il vous reste %ld vies<span class="es0">\</span>n<span class="es0">\</span>n"</span>, age, nombreDeVies<span class="br0">)</span>;<br />
    <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">(</span><span class="st0">"Vous pouvez faire une addition<span class="es0">\</span>n<span class="es0">\</span>nEntrer un premier nombre : "</span><span class="br0">)</span>;<br />
    <br />
    scanf<span class="br0">(</span><span class="st0">"%ld"</span>, &nombre1<span class="br0">)</span>;<br />
    <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">(</span><span class="st0">"Entrer le deuxieme nombre : "</span><span class="br0">)</span>;<br />
    scanf<span class="br0">(</span><span class="st0">"%ld"</span>, &nombre2<span class="br0">)</span>;<br />
    <br />
    resultat = nombre1 + nombre2;<br />
    <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">(</span><span class="st0">"<span class="es0">\</span>n%ld + %ld = %ld<span class="es0">\</span>n"</span>, nombre1, nombre2, resultat<span class="br0">)</span>;<br />
    <br />
    nombre3 = pow<span class="br0">(</span>resultat, <span class="nu0">2</span><span class="br0">)</span>;<br />
    <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">(</span><span class="st0">"La puissance de se nombre est : %ld<span class="es0">\</span>n<span class="es0">\</span>n"</span>, nombre3<span class="br0">)</span>;<br />
    <br />
    system<span class="br0">(</span><span class="st0">"PAUSE"</span><span class="br0">)</span>; <br />
    <span class="kw1">return</span> <span class="nu0">0</span>;<br />
    <span class="br0">}</span><br />
    </div>
    Merci d'avance pour votre aide et <span class="orange">jespère que tous va bien ce passé pour ma première expériance dans le forum</span>. ;)
    • Partager sur Facebook
    • Partager sur Twitter
      26 janvier 2007 à 7:16:54

      Bonjour,

      Voici le code corrigé:
      (les petits mots d'explications sont à la fin de mon post)
      #include <stdio.h>
      #include <stdlib.h>
      #include <math.h>

      int main(int argc, char *argv[])
      {
        long nombreDeVies = 5;
        long age = 0;
        double resultat = 0;
        double nombre1 = 0;
        double nombre2 = 0;
        double nombre3 = 0;

        printf("Dite-moi votre age ? ");
        scanf("%ld", &age);

        printf("Bonjour\n");
        printf("Vous avez %ld ans et il vous reste %ld vies\n\n", age, nombreDeVies);
        printf("Vous pouvez faire une addition\n\nEntrer un premier nombre : ");

        scanf("%lf", &nombre1);
        printf("Entrer le deuxieme nombre : ");
        scanf("%lf", &nombre2);

        resultat = nombre1 + nombre2;
        printf("\n%lf + %lf =  %lf\n", nombre1, nombre2, resultat);

        nombre3 = pow(resultat, 2);
        printf("La puissance de se nombre est : %lf\n\n", nombre3);

        system("PAUSE");
        return 0;
      }


      1) En C, les variables doivent être déclarées en début de bloc (entre accolade)
      2) Tes variables "nombre1 - nombre2 - nombre3 - resultat" sont des variables de types double, donc dans le scanf il faut mettre "%lf" à la place de "%ld" !

      %lf -> double
      %ld -> long
      • Partager sur Facebook
      • Partager sur Twitter
        26 janvier 2007 à 19:11:27

        Bonjour à tous !!!
        J'aimerais commencer par remercier SayZ qui a résolut mon problème. ;)
        Tous sa a cause de %lf !!! :D
        Alors merci beaucoup a toi, et oui le forum c'est la solution !!!

        • Partager sur Facebook
        • Partager sur Twitter

        Un exercice de routine qui a mal tourné...

        × 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