Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calculatrice

petit prob

Sujet résolu
    11 décembre 2005 à 18:31:59

    Bonjours, je suis les cours de mat avec attention, et je bidouille un peu.
    J'ai voulu faire une "calculatrice", enfin c'est pas vraiment une calculette.
    Voilà le code
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    int main(int argc, char *argv[])
    {
      long nombre1 = 0, exposant1=0, nombre2 = 0, exposant2=0, resultat_total=0;
      double resultat1 = 0, resultat2=0;
     
      printf(" Entrez le premier nombre: ");
      scanf("%ld", &nombre1);

      printf(" Entrez l'exposant: ");
      scanf("%ld", &exposant1);
     
      resultat1= pow(nombre1, exposant1);
      printf("Le nombre %ld exposant %ld vaut:  %ld\n", nombre1, exposant1, resultat1);
     
      printf(" Entrez un second nombre:  ");
      scanf("%ld", &nombre2);
     
      printf("Entrez un exposant pour ce nombre:  ");
      scanf("%ld", &exposant2);
     
      resultat2= pow(nombre2, exposant2);
      printf("Le nombre %ld exposant %ld vaut:  %ld\n", nombre2, exposant2, resultat2);
     
      resultat_total= resultat1 + resultat2;
      printf("Le nombre %ld exposant %ld + le nombre %ld exposant %ld vaut %ld\n", nombre1,
              exposant1, nombre2, exposant2, resultat_total);
             
      system("PAUSE");
      return 0;
    }

    Mais a la ligne là(de même pour le resultat2) il me met: "le nombre 10(ce que j'ai entré) exposant 2(l'exposant que j'ai entré) vaut: 0:
    printf("Le nombre %ld exposant %ld vaut:  %ld\n", nombre1, exposant1, resultat1);

    Je ne comprends pas pourquoi?? où est l'erreur??
    Le resultat final lui est bon pourtant. Je pige plus rien là.
    Merci de vos réponses ;)
    • Partager sur Facebook
    • Partager sur Twitter
      11 décembre 2005 à 18:52:05

      resultat1 est un double, donc %lf et pas %ld
      d'ailleurs pow prend deux doubles comme arguments, donc change nombre1 et exposant en double

      Et rajoute -Wall à tes options de compilo, sinon c'est sur qu'il te dira jamais rien.
      • Partager sur Facebook
      • Partager sur Twitter
        11 décembre 2005 à 19:16:24

        Citation : drexil

        resultat1 est un double, donc %lf et pas %ld
        d'ailleurs pow prend deux doubles comme arguments, donc change nombre1 et exposant en double

        Et rajoute -Wall à tes options de compilo, sinon c'est sur qu'il te dira jamais rien.


        Ok merci ça va maintenant.
        C'est quoi -Wall???
        sinon c'est chian les .000000 mais bon...

        ps: point de vu niveau, je suis les cours de mat donc je ne connais rien d'autre :-°

        edit: Voilà le code final:
        #include <stdio.h>
        #include <stdlib.h>
        #include <math.h>
        int main(int argc, char *argv[])
        {
          double nombre1 = 0, exposant1=0, nombre2 = 0, exposant2=0, resultat_total=0,
                 resultat1 = 0, resultat2=0;
         
          printf(" Entrez le premier nombre: ");
          scanf("%lf", &nombre1);

          printf(" Entrez l'exposant: ");
          scanf("%lf", &exposant1);
         
          resultat1= pow(nombre1, exposant1);
          printf("Le nombre %lf exposant %lf vaut:  %lf\n", nombre1, exposant1, resultat1);
         
          printf(" Entrez un second nombre:  ");
          scanf("%lf", &nombre2);
         
          printf("Entrez un exposant pour ce nombre:  ");
          scanf("%lf", &exposant2);
         
          resultat2= pow(nombre2, exposant2);
          printf("Le nombre %lf exposant %lf vaut:  %lf\n", nombre2, exposant2, resultat2);
         
          resultat_total= resultat1 + resultat2;
          printf("Le nombre %lf exposant %lf + le nombre %lf exposant %lf vaut %lf\n", nombre1,
                  exposant1, nombre2, exposant2, resultat_total);
                 
          system("PAUSE");
          return 0;
        }

        Suis vraiment fière :p
        • Partager sur Facebook
        • Partager sur Twitter

        Calculatrice

        × 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