"pow " pour calculer la puissance en C

Bonjour,

je suis débutante en programmation j'ai un petit problème avec la bibliothèque <math.h>
et là j'arrive pas à calculer la puissance en utilisant la fonction "pow"
voilà mon prog :

printf("entre un nombre : \n");
scanf("%d",&nbr3);
printf("entrez un deuxieme nombre : \n");
scanf("%d",&nbr4);
printf(" %d ^ %d = %d\n",nbr3,nbr4,pow(nbr3,nbr4));
en compilant le prog le resultat envoie 0 !!!
besoin d'un coup de main
et mercii

1 réponse

  1. Modérateur
    pow s'applique à des nombres réels, or ici avec %d c'est des entiers que tu utilises...
    1
    1. Contributeur
      la solution :
      printf(" %d ^ %d = %e\n",nbr3,nbr4,pow(nbr3,nbr4));
      ou
      printf(" %d ^ %d = %ld\n",nbr3,nbr4,long(pow(nbr3,nbr4)));
      suivant que tu utilise des grands nombres ou pas.
      0
    2. Contributeur
      Char Snipeur,
      Ne serait-ce pas plutôt un cast que tu voulais réaliser avec "long" ?
      0
    3. Contributeur
      sait pas. Je ne vois pas la subtilité.
      0
    4. en fait je crois que ça marche aussi avec des int ;voilà ce cas est juste et il renvoi la bonne réponse !!! j'ai juste ajouté une nouvelle variable à la quelle j'ai affecté la puissance en gardant les int !!!!

      case 7 :printf("entre un nombre : \n");
      scanf("%d",&nbr3);
      printf("entrez un deuxieme nombre : \n");
      scanf("%d",&nbr4);
      p=pow(nbr3,nbr4);
      printf(" %d ^ %d =%d \n",nbr3,nbr4,p);
      break;
      0
    5. Contributeur
      Char Snipeur,

      Il n'y a pas de subtilité. long() n'est pas une fonction. Tu ne peux donc pas faire : long(pow(...)). En revanche, tu peux caster avec (long)pow(...)

      Cdlt,
      0