Puissance en C

Résolu/Fermé
Sewell Messages postés 1723 Date d'inscription mardi 15 décembre 2009 Statut Membre Dernière intervention 30 décembre 2017 - 23 sept. 2011 à 18:04
Sewell Messages postés 1723 Date d'inscription mardi 15 décembre 2009 Statut Membre Dernière intervention 30 décembre 2017 - 23 sept. 2011 à 18:45
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 !



1 réponse

periplasme Messages postés 391 Date d'inscription vendredi 22 avril 2011 Statut Membre Dernière intervention 5 février 2013 53
Modifié par periplasme le 23/09/2011 à 18:19
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 ;-).
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
23 sept. 2011 à 18:17
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..
0
periplasme Messages postés 391 Date d'inscription vendredi 22 avril 2011 Statut Membre Dernière intervention 5 février 2013 53
23 sept. 2011 à 18:20
je ne me souvenais pas si c'eait %lf ou %f ... tu lève mon doute sur ce coup si !
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
23 sept. 2011 à 18:26
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 ^^
0
periplasme Messages postés 391 Date d'inscription vendredi 22 avril 2011 Statut Membre Dernière intervention 5 février 2013 53
23 sept. 2011 à 18:30
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.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
23 sept. 2011 à 18:32
Ouais, mais un débutant risque de faire des fonctions très peu efficaces d'un point de vue complexité...
0