Puissance en C

Résolu
Bonjour, bonsoir,

Je souhaiterais coder (en C) un code permettant d'élever un nombre x à une puissance y. Mais je n'y arrive pas avec "pow"

Le code donne ceci:

Case 7:

double resultat7 = 0, nombre13 = 0, nombre14 = 0;

scanf ("%d", &nombre13);
scanf ("%d", &nombre14);

resultat7 = pow (nombre13, nombre14);

printf("%f", resultat7);
break;

Et j'ai essayé de remplacer le "%f" par "%"d" g ou lf mais ça ne donne rien du tout...

C'est peut-être une très bête faute, je suis débutant :)

Merci d'avance !



--
"La vie, ce n'est pas d'attendre que les orages passent; c'est d'apprendre comment danser sous la pluie."

1 réponse

  1. le problème est que pow prend en argument des double et non des int ...
    essaye des %f dans tes scanf. (%d pour int, %f pour double )

    à titre personnel, quand le besoin s'en fait sentir, je code moi même la fonction
    int puissance(int a, int b);  


    c'est, au passage, un bonne exercice sur les boucles pour un débutant ;-).
    1. Modérateur
      Ici resultat7, nombre13 et nombre14 sont double, donc il n'y a pas de problème de typage avec pow, par contre avec scanf, pour les double il ne faut pas utiliser %d mais %f comme pour le printf..
    2. je ne me souvenais pas si c'eait %lf ou %f ... tu lève mon doute sur ce coup si !
    3. Modérateur
      f pour float, lf pour double et Lf pour long double... Mais il y a aussi e,E,g,G à la place du f.
      Mais j'avoue que les différences me dépasse un peu ^^
    4. oh oui ... beaucoup de choix pour au final pas grande différence ... enfin bref, ça devrait résoudre le problème, sinon, comme dis ci-dessus, je l'encourage a créé sa propre fonction puissance, pour un débutant, c'est un exercice sympa.
    5. Modérateur
      Ouais, mais un débutant risque de faire des fonctions très peu efficaces d'un point de vue complexité...